从表中选择字段,其中 id 不在 mysql 的另一个表中 [不工作]
Posted
技术标签:
【中文标题】从表中选择字段,其中 id 不在 mysql 的另一个表中 [不工作]【英文标题】:select fields from table where id not in another table in mysql [not working] 【发布时间】:2016-01-27 18:07:04 【问题描述】:我正在尝试从一个表中获取数据,但该 id 不在另一个表中。我引用了一些代码示例来解决这个问题,但它仍然不起作用。我为此尝试了两种风格。我尝试过的sql代码如下,请帮助我。谢谢。
样式 1
SELECT *
FROM quotation q
WHERE q.quotationId NOT IN (SELECT ip.quotation_id FROM invest_project ip)
样式 2
SELECT *
FROM quotation q
LEFT JOIN invest_project ip
ON q.quotationId = ip.quotation_id
WHERE q.quotationId IS NULL
【问题讨论】:
你遇到了什么错误.. 没有找到记录老兄:SELECT * FROM quote q LEFT JOINinvest_project ip ON q.quotationId = ip.quotation_id WHERE q.quotationId IS NULL; /* 受影响的行:0 找到的行:0 警告:0 1 次查询的持续时间:0.032 秒。 */ 在某些记录中 q.quotationId 是否为空...?? 老兄,我只想要左排除 JOIN 等等.....左表 id 不应该为空,但右表应该为空。是的,明白了。感谢您的建议。 它适用于以下代码:SELECT * FROM quote q LEFT JOINinvest_project ip ON q.quotationId = ip.quotation_id WHERE ip.quotation_id IS NULL 【参考方案1】:Select *
from [Table1] AS T1
where not exists( select * from [Table2] AS T2 where T1.ID = T2.ID)
为我工作
【讨论】:
【参考方案2】:当您指定不显示空值数据的条件时, 试试这个
SELECT *
FROM quotation q
WHERE q.quotationId NOT IN (SELECT ip.quotation_id FROM invest_project ip) or q.quotationId is null
【讨论】:
【参考方案3】:尝试不使用别名...
SELECT * FROM quotation WHERE quotation.quotationId NOT IN (SELECT quotation_id FROM invest_project)
【讨论】:
其实我很感谢你的建议。根据您的建议,我可以用另一种方法解决它。您的代码在 sql fiddle 工作。这是我还创建了类似于我的表的模式和 dml。 link。但它不适用于我的数据库。但是,我非常感谢您的建议和回答老兄。以上是关于从表中选择字段,其中 id 不在 mysql 的另一个表中 [不工作]的主要内容,如果未能解决你的问题,请参考以下文章