如何在sql中创建INNER JOIN多个表

时间:2010-12-10 14:44:03

标签: sql mysql select inner-join

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

price_id:PRODUCT_NAME:VENDOR_NAME:价格

类似的东西:

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

但我没有得到它。

4 个答案:

答案 0 :(得分:7)

试试这个:

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

答案 1 :(得分:0)

您不能使用相同的别名两次

Prices as pc

你只能使用一次电脑。

答案 2 :(得分:0)

或编写3个不同的select语句并使用UNION

加入它们

答案 3 :(得分:0)

你好我有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

尝试按照自己的要求来做。