【问题标题】:How to create INNER JOIN multiple tables in sql如何在sql中创建INNER JOIN多个表
【发布时间】:2011-05-23 12:49:55
【问题描述】:

我有 3 个表:产品、供应商和价格。价格有 product_id 和 vendor_id 作为外键。现在我想将价格显示为:

price_id:product_name:vendor_name:price

类似:

SELECT p.product, v.vendor, pc.price
FROM Products AS p,
Vendors AS v
INNER JOIN Prices AS pc
ON p.product_id = pc.product_id
INNER JOIN Prices AS pc
ON v.vendor = pc.vendor_id

但我没有得到它的工作。

【问题讨论】:

    标签: sql mysql select inner-join


    【解决方案1】:

    您好,我有 3 个不同的表,这个查询运行良好。

    SELECT A.ID_USER,A.NAME,D.ADDRESS,B.ID_STATE,B.STATE,A.ID_COUNTRY,C.COUNTRY 
    FROM market.USER A 
        INNER JOIN market.state B
    ON   A.ID_STATE=B.ID_STATE 
        INNER JOIN market.country C
    ON A.ID_COUNTRY=C.ID_COUNTRY
        INNER JOIN market.contact D
    ON A.ID_CONTACT=D.ID_CONTACT
    

    尝试根据自己的要求进行操作。

    【讨论】:

      【解决方案2】:

      试试这个:

      SELECT pr.price_id, p.product_name v.vendor_name, pr.price
      FROM Prices AS pr
      LEFT JOIN Products AS p ON p.product_id = pr.product_id
      LEFT JOIN Vendors AS v ON v.vendor = pr.vendor_id
      

      【讨论】:

      • 为什么是LEFT JOIN 而不是INNER?问题指出product_idvendor_id 都受外键约束。因此,价格表中的条目不应该加入供应商/产品的可能性。
      【解决方案3】:

      或编写 3 个不同的选择语句并将它们与 UNION 连接

      【讨论】:

        【解决方案4】:

        你不能重复使用同一个别名

        Prices as pc
        

        你只能使用一次电脑。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-03
          • 2014-01-22
          • 1970-01-01
          • 1970-01-01
          • 2018-03-07
          相关资源
          最近更新 更多