mysql - 具有两个条件但只存在一个的内连接

标签 mysql

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/

相关文章:

php - mysql 选择之前 n 行和之后 n 行

MySQL OUTFILE 查询提示 "file already exists"但该文件根本不存在

php - 使用 jquery 和 php get 函数的 twitter 类似回复按钮?

mysql 存储过程调用

mysql - 在sql中获取与嵌套类别相关的项目数

MySQL STR_TO_DATE 插入空值

php - Eloquent 获取与模型 X 关联的所有模型

php - Yii2:无法从表单发送电子邮件

MySQL - 是否可以在 IN() 语句中使用 group_concat?

mysql - SQL 中的 if 语句和