我有两张表,比如
Table 1
-------------
id, name1
-------------
1, abc
2, xyz
3, hello
4, world
TABLE 2
--------------------------
id, table1_id, name2
--------------------------
1, 3, foo
2, 2, bar
需要mysqlQuery(但不是子查询):
SELECT table1.* FROM table1 WHERE table1.id NOT IN (SELECT table2.id FROM table2);
结果如:
TABLE 1
-------------
id, name1
-------------
1, abc
4, world
你可以帮助我在没有子查询的情况下获得上述结果。
答案 0 :(得分:2)
使用LEFT JOIN
和WHERE子句与IS NULL
一起过滤不匹配的记录,
SELECT a.*
FROM table1 a
LEFT JOIN table2 b ON a.id = b.table1_id
WHERE b.table1_id IS NULL
答案 1 :(得分:0)
SELECT table1.*
FROM table1 a
LEFT JOIN table2 b ON a.id = b.id
WHERE a.id != b.id
我希望这就是你要找的东西。
答案 2 :(得分:0)
试试这个:
select * from tab1 order by id asc limit 1;
UNION
select * from tab1 order by id desc limit 1;