【问题标题】:Laravel syntax to get query with distinct resultsLaravel 语法获取具有不同结果的查询
【发布时间】:2016-09-13 09:44:44
【问题描述】:

我有两个 MySQL 表:

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

我想得到一个带有这个结果的查询:

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

我该怎么做?

【问题讨论】:

  • 我的代码工作正常,只是我没有想出我应该使用什么 sql 查询。无论如何,我现在得到了想要的结果。

标签: php mysql laravel


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    试试NOT EXISTS

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

    【讨论】:

      【解决方案3】:

      您可以通过使用LEFT JOINNULL 检查来实现结果。工作查询是:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-15
        • 1970-01-01
        • 1970-01-01
        • 2011-04-27
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 2023-03-09
        相关资源
        最近更新 更多