SELECT oc_product.product_id, oc_product.quantity, oc_product.price, oc_product_description.name, oc_product_description.description
FROM oc_product
INNER JOIN oc_produsct_description ON oc_product.product_id = oc_product_description.product_id
WHERE oc_product.prodsuct_id = 1 AND oc_prodDuct_description.landuage_id = 5
在此查询中,oc_product_id = 1 存在,但 oc_product_description.language_id = 5 不存在。
但是,如果语言 5 存在或不存在,我想获取 id 为 1 的产品的 SELECT
最佳答案
您想要左连接
:
SELECT p.product_id, p.quantity, p.price, pd.name, pd.description
FROM oc_product p LEFT JOIN
oc_product_description pd
ON p.product_id = pd.product_id AND pd.language_id = 5
WHERE p.product_id = 1;
注释:
language_id
的条件需要进入ON
子句,或者将外连接转换为内连接。- 使用表别名,它们使查询更易于阅读和编写。
关于mysql - 具有两个条件但只存在一个的内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44201063/