Mysql 不在功能中使用

Mysql 不在功能中使用,mysql,sql,Mysql,Sql,在上面的查询中,SELECT DISTINCTproducts.id FROM timer_completed将返回多个值,但我需要不在该结果集中的产品,因此我没有在函数中使用,但它返回错误。您能给我一个更好的方法来实现这一点吗。我怀疑您的子查询返回了一些空值,这将使NOT IN to不会抛出错误。使用“不存在”来执行此操作 SELECT products.name from products WHERE products.id NOT IN ( SELECT DISTINCT(product

在上面的查询中,SELECT DISTINCTproducts.id FROM timer_completed将返回多个值,但我需要不在该结果集中的产品,因此我没有在函数中使用,但它返回错误。您能给我一个更好的方法来实现这一点吗。

我怀疑您的子查询返回了一些空值,这将使NOT IN to不会抛出错误。使用“不存在”来执行此操作

SELECT products.name from products WHERE products.id 
NOT IN ( SELECT DISTINCT(products.id) FROM timer_completed
INNER JOIN com_jobcard ON com_jobcard.id = timer_completed.job_card_id
INNER JOIN products ON products.id = com_jobcard.product_id)
我怀疑您的子查询返回一些空值,这将使NOT IN to不会抛出错误。使用“不存在”来执行此操作

SELECT products.name from products WHERE products.id 
NOT IN ( SELECT DISTINCT(products.id) FROM timer_completed
INNER JOIN com_jobcard ON com_jobcard.id = timer_completed.job_card_id
INNER JOIN products ON products.id = com_jobcard.product_id)
使用“不存在”而不是“不存在”。我希望这能奏效

如果被探测的结果集返回NULL,NOT IN操作将失败。在这种情况下,NOT In查询的结果为0行,而NOT EXISTS查询仍将显示一个表中的行,但不显示另一个表中的行。

使用NOT EXISTS代替NOT In。我希望这能奏效

如果被探测的结果集返回NULL,NOT IN操作将失败。在这种情况下,NOT In查询的结果为0行,而NOT EXISTS查询仍将显示一个表中存在的行,但不显示另一个表中的行

在MySQL中搜索缺失值的最佳方法是使用左键 JOIN/为NULL或不在中,而不是不存在

你可以在这里使用左连接

希望这有帮助

在MySQL中搜索缺失值的最佳方法是使用左键 JOIN/为NULL或不在中,而不是不存在

你可以在这里使用左连接


希望这有帮助。

它会返回什么错误?它会返回什么错误?
SELECT P.name
FROM 
    products P
LEFT JOIN 
     (SELECT DISTINCT(products.id) FROM timer_completed
      INNER JOIN com_jobcard ON com_jobcard.id = timer_completed.job_card_id
      INNER JOIN products ON products.id = com_jobcard.product_id) T
     ON P.product_id <> T.product_id
WHERE T.product_id IS NULL