mysql - 如何创建非强制加入?

标签 mysql sql join

我有以下 2 个表:

  • ProductCombined - 此处存储了多个产品信息
  • 产品性能 - 定义产品是否表现良好

这是我当前的查询:

SELECT `prod_combined`.`sku`, `prod_combined`.`titel`, `prod_combined`.`preis_vk`, `prod_performance`.* 
FROM `prod_combined` 
INNER JOIN `prod_performance` ON prod_combined.sku = prod_performance.sku AND 
prod_performance.partner_id = 801 
WHERE (aktiv = 1) AND (active >= 0) 
AND prod_combined.sku = 1006224000 
LIMIT 5

在此版本中,必须将“active”字段设置为大于 0 的值。

但我需要一个将 JOIN 视为非强制的查询。例如。如果该产品从 prod_combined 到 prod_performance 的连接不成功,查询也会获取它。

我是否充分解释了这一点?

问候,

最大

最佳答案

这应该对你有用:

SELECT `prod_combined`.`sku`, `prod_combined`.`titel`, `prod_combined`.`preis_vk`, `prod_performance`.* 
FROM `prod_combined` 
LEFT JOIN `prod_performance` ON prod_combined.sku = prod_performance.sku
  AND prod_performance.partner_id = 801
  AND prod_performance.active >= 0
WHERE prod_combined.aktiv = 1 
  AND prod_combined.sku = 1006224000  
LIMIT 5

LEFT JOIN 将确保如果需要从 prod_performance 添加信息,则会显示该信息

关于mysql - 如何创建非强制加入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11011613/

相关文章:

java - 在 mySQL 中创建数据库似乎无法正常工作

sql - 如何选择 SUM() + Group By 之后的最大值?

mysql - 使用 MAX 函数时返回多条记录?

php - 一对多的mySQL JOIN

php - 根据mysql字段和php变量状态选择字段下拉选择状态

mysql - MySQL 中行之间的差异

MySQL查找所有列的可能值的行数小于n的行

java - 使用联接表将 JPA 双向 @ManyToOne 关系映射到多个表

python - 在 Python 中连接字符串的最有效方法

mysql - MySQL 中的 40GB .SQL 文件到 Azure 上的 SQL 数据库