mysql - Mysql查询未在订单属性表上返回Null行
问题描述
我正在尝试执行一个查询,在该查询中检索属性以及来自不同表的值。我遇到的问题是它只返回order_property_values
表内匹配的结果行。即使在表中找不到匹配项,我也希望它返回所有结果order_property_values
。
这是我现在的查询。
SELECT * FROM `properties` as t1
LEFT JOIN `order_property_values` AS t2
ON t1.`id` = t2.`property_id`
WHERE t1.`id`
IN (SELECT `property_id` FROM `assigned_properties`
WHERE `component_id`
IN (SELECT `component_id` FROM assigned_components
WHERE `product_id` = (SELECT `product_id`
FROM `order_items`
WHERE `id` = 1)
)
) AND t2.`order_id` = 13
此查询以我想要的方式检索所有内容,但没有空匹配行。
IN
仅返回表中可能/可能不存在的ID order_property_values
。
我已经尝试过NOT IN
,IS NULL
但似乎也无法正常工作。
提前感谢您节省了一天。
解决方案
SELECT * FROM `properties` as t1
LEFT JOIN `order_property_values` AS t2
ON t1.`id` = t2.`property_id` AND t2.`order_id` = 13
WHERE t1.`id`
IN (SELECT `property_id` FROM `assigned_properties`
WHERE `component_id`
IN (SELECT `component_id` FROM assigned_components
WHERE `product_id` = (SELECT `product_id`
FROM `order_items`
WHERE `id` = 1)
)
)
推荐阅读
- react-native - 自签名证书 React Native
- r - R:双线性插值以填补 R 中的空白
- javascript - 在 JavaScript 中,所有表达式都是语句吗?
- twincat - Twincat 运行模式错误 1861
- templates - 更改页眉和页脚发票模板的大小
- javascript - 如何在 d3 的这个选择中使用“this”?
- python - 在 Python 上使用带有 Selenium 的 CSS 选择器找不到任何元素
- c++ - 是什么导致了 priority_queue 和 sort() 函数中排序方式的不同?
- javascript - 外部 DIV 与内部 DIV 一起向上包裹和扩展
- python - 如何在同一台机器上的不同 GPU 上并行运行多个 TensorFlow 实例?