SQL外连接2表

Fab*_*pet 1 mysql sql

我有两张桌子,comp_productcomp_product_marchand.

comp_product包含产品信息(描述,名称等)

comp_product_marchand含有不同的价格(产品经销商).每个经销商都有产品价格.但不适用于所有产品

我想只为每个经销商提供一个SQL查询产品列表及其价格(即使经销商没有)

我有这个SQL查询:

SELECT
    p.id_product,
    pm.price
FROM comp_product_marchand pm
LEFT OUTER JOIN comp_product p
    ON p.id_product = pm.id_product
WHERE id_marchand = 4
Run Code Online (Sandbox Code Playgroud)

(WHERE子句仅用于演示)

这个SQL查询返回有价格的产品的价格,而不是其他产品...任何想法?

Joe*_*ras 5

更改表之间的链接:

SELECT
    p.id_product,
    pm.price
FROM comp_product p
LEFT OUTER JOIN comp_product_marchand pm
    ON p.id_product = pm.id_product
    AND id_marchand = 4
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您将显示所有产品,如果marchand = 4,则会显示有关marchand的信息.

我把查询放在ON子句中的marchand ID上,因为如果你将它放在WHERE子句中,你将切断marchand没有该产品的所有行