我试图在MySQL SELECT语句中包含子查询来组装产品链接,当与该链接关联的产品ID可能不再存在时。当该产品ID不存在时,子查询找不到任何结果,并且整个行从最终结果中被省略。无论如何,我希望该行能够被返回(NULL值会很好)。当子查询匹配没有结果时,MySQL子查询忽略整行
SELECT s.field_a, s.field_b, s.field_c,
(SELECT CONCAT('/', sma.name_link, '/', smo.name_link, '.html?pid=', spr.id)
FROM sales_products AS spr, sales_sections AS see,
sales_models AS smo, sales_manufacturers AS sma
WHERE sse.id = spr.sales_section_id AND smo.id = sse.sales_model_id
AND smo.sales_manufacturer_id = sma.id
AND spr.id = s.sales_product_id
) AS product_link
FROM sales_order_items AS s, sales_products AS p
WHERE s.order_id = 100 AND p.id = s.sales_product_id
ORDER BY shipment_id, sales_order_item_id
我已经搜索了很长一段时间,但我只是没有设法将这一块拼凑在一起。我期待着可以提供的任何形式的反馈或解决方案。
谢谢你,斯宾塞。这完美地完成了这个技巧。看起来你明白我想要完成的事情(为了简化示例,我从查询中删除了很多内容)。 同时也感谢您与我分享更多的想法和最佳实践。我真的很感激。 – James
答复完毕后,我点击复选框接受答案。我想这就是你的建议?请让我知道是否还有更多我错过的东西。 – James