Laravel语法以获得具有不同结果的查询

时间:2016-09-13 09:44:44

标签: php mysql laravel

我有两个MySQL表:

+-----------+    +-----------+
| id.Table1 |    | id.Table2 |
+-----------+    +-----------+
|         1 |    |         2 |
|         2 |    |         3 |
|         3 |    |         4 |
|         4 |    +-----------+
|         5 |
+-----------+

我想要查询此结果:

+-----------+
| id.Table1 |
+-----------+
|         1 |
|         5 |
+-----------+

我该怎么做?

3 个答案:

答案 0 :(得分:0)

一种方法是使用NOT IN子句:

SELECT ID FROM TABLE1 WHERE ID NOT IN (SELECT ID FROM TABLE2)

答案 1 :(得分:0)

尝试NOT EXISTS

SELECT ID FROM TABLE1 as a WHERE NOT EXISTS (SELECT ID FROM TABLE2 as b where a.ID=b.ID)

答案 2 :(得分:0)

您可以LEFT JOIN使用NULL检查来获得结果。工作查询是:

SELECT T1.Id
FROM Table1 T1
LEFT JOIN Table2 T2 ON T2.Id = T1.Id
WHERE T2.Id IS NULL