Mysql SQL查询,不在返回错误

Mysql SQL查询,不在返回错误,mysql,sql,Mysql,Sql,大家好,我有点小问题。所以我有两张桌子,电话和发票。我试图获取的发票ID不在robot_calls.invoice_ID的ID中。我在where子句中得到一个错误未知列 我不是sql专家,有人能告诉我吗 干杯。您可以通过以下方式实现: SELECT * FROM invoices WHERE ID NOT IN ( SELECT invoice_id FROM robot_calls ) 试试这个 SELECT * FROM invoices

大家好,我有点小问题。所以我有两张桌子,电话和发票。我试图获取的发票ID不在robot_calls.invoice_ID的ID中。我在where子句中得到一个错误未知列

我不是sql专家,有人能告诉我吗


干杯。

您可以通过以下方式实现:

SELECT *
FROM invoices
WHERE ID NOT IN (
        SELECT invoice_id
        FROM robot_calls
        )
试试这个

SELECT * FROM invoices 
WHERE`desc`='Invoice from mr. Robot' 
AND ID NOT IN
(SELECT invoice_id FROM robot_calls)

你想要那样的东西吗

SELECT * FROM invoices where `desc`='Invoice from mr. Robot' and invoice_id NOT IN
(SELECT invoice_id FROM robot_calls)

您需要从robot_calls表中选择一个id列来执行此查询:其中invoice_id不在SelectInvoice_id from robot_calls中

此查询的另一种替代方法是使用存在量词:

SELECT *
FROM invoices iv
WHERE NOT EXISTS (SELECT * FROM robot_calls rc WHERE rc.invoice_id=iv.invoice_id)
  AND iv.desc='Invoice from mr. Robot'

左联接应适用于以下情况:

SELECT * FROM invoices i
LEFT JOIN robot_calls r ON r.invoice_id=r.id
WHERE i.desc = 'Invoice from mr. Robot'
AND r.invoice_id IS NULL

你不能以这种方式使用not。它应该类似于从tbl1中选择,其中id不在从表2中选择id中。您从发票中选择了两次,但从未从robot_调用中选择……添加一些示例表数据和预期结果。请格式化文本,不要图片。啊!好的,非常感谢!
SELECT * FROM invoices i
LEFT JOIN robot_calls r ON r.invoice_id=r.id
WHERE i.desc = 'Invoice from mr. Robot'
AND r.invoice_id IS NULL