我正在尝试从两个 MySql 表中选择记录。我想要第一个表中的所有记录,不包括第二个表中按日期排列的特定记录。例如:
表1 T1id
、名字
、姓氏
Table2 id
、T1id
、小时
、费率
、日期
T1id
是两个表之间的链接,因此当表连接时,我将拥有 T1id
, firstName
, lastName
、小时
、费率
、日期
假设表2中有一条日期
为2012-02-08的记录。通过一个查询,我需要从 Table1 中选择所有记录,排除 Table2 中日期为 2012-02-08 的记录。
我尝试了 JOINS 和 UNIONS 的一些变体,但是我要么获取所有记录、一堆重复记录,要么获取一条记录(即 Table2 日期)。我很抱歉,但我没有要包含的特定代码,因为没有任何内容对我有用。
最佳答案
很多时候,这通常是使用 NOT EXISTS 子查询来完成的,但子查询在较大的表中可能会带来很大的性能影响...但是,通过执行 LEFT JOIN 并查找 NULL 本质上是相同的结果
select
t1.*
from
table1 t1
left join table2 t2
on t1.t2.t1id
AND t2.date = '2012-02-08'
where
t2.t1id IS NULL
关于mysql - SQL 查询从一个表中获取除另一表中的特定记录之外的所有记录(按日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9193100/