这个问题在这里已经有答案了:
仅当值不存在时返回行(2个答案)
两年前关门了。
此查询有什么问题:
SELECT `product`.`id`, `title` AS `text` FROM `product`
LEFT JOIN `productlang` ON product.id=productlang.product_id
LEFT JOIN `new_product` ON product.id=new_product.product_id
WHERE (`product`.`id` <> `new_product`.`product_id`)
AND (`title` LIKE '%nik%')
AND (`language`='bg')
LIMIT 20
我们的目的是从 product
谁的表 id
不存在于 new_product
( product_id
是相关的专栏)我想 WHERE (product.id <> new_product.product_id)
部分应该起作用。我的错在哪里?谢谢您!
1条答案
按热度按时间h7appiyu1#
无论何时使用
Left Join
,请确保Where
表右侧的条件Left Join
在On
条款。否则,这将限制您的结果集。要检查右侧表中是否没有匹配的条目,可以使用
IS NULL
.在处理多表查询时,请使用适当的别名,以便于阅读和清晰。
请尝试以下操作: