[user_table]
+------------------------------------------+
| id | ref_id | name | .... |
+------------------------------------------+
| 1 | 0 | John | .... |
| 2 | 1 | James | .... |
| 3 | 2 | Jinny | .... |
| 4 | 3 | Jose | .... |
| 5 | 4 | Joe | .... |
| 6 | 5 | Joy | .... |
| 7 | 8 | Joey | .... |
| 8 | 11 | Jimmy | .... |
| 9 | 12 | Jacky | .... |
| 10 | 13 | Jung | .... |
+------------------------------------------+
上面是一个简单的数据,我想在列ref_id
中缺少数字,因此,丢失数字是6, 7, 9 and 10
我想要MySQL一些查询代码来获取它。
+------------+
| result |
+------------+
| 6 |
| 7 |
| 9 |
| 10 |
+------------+
答案 0 :(得分:0)
numbers
的表。SELECT ... FROM numbers LEFT JOIN your_table ON ... WHERE ... IS NULL
来查找丢失的行答案 1 :(得分:-1)
您可以在同一张表上用LEFT JOIN
进行操作,而SELECT
仅使用第二个NULL
值对。
SELECT u1.id as result
FROM user_table u1
LEFT JOIN user_table u2 ON u1.id = u2.ref_id
WHERE u2.id IS NULL
更新:
您可以测试HERE。
我的解决方案在两种情况下均有效。