我有聯繫人列表,然後我有阻止的聯繫人列表。我需要查詢未被阻止的聯繫人。我怎樣才能查詢所有被阻止的聯繫人在SQL查詢內過濾掉?如何從兩個表格中查詢,但僅從一個表格中獲取結果?
0
A
回答
7
僞SQL:
SELECT * FROM CONTACTS as c WHERE c.ID NOT IN (SELECT ID FROM BLOCKEDCONTACTS)
3
另一種可能的解決方案,這將是:
SELECT *
FROM TblContacts AS C
LEFT JOIN TblBlockedContacts AS BC
ON C.ID = BC.ID
WHERE C.ID IS NULL
我想這應該是比沒有更高性能。
1
我可以建議另一種變體:
SELECT *
FROM CONTACTS as c
WHERE NOT EXISTS (SELECT *
FROM BLOCKEDCONTACTS as B
WHERE c.id=b.id)
選擇這個變體或任何兩個人都依賴於DBMS和您使用索引。
3
你可以關注johan的代碼,或者改變你的db。 取而代之的是2個表格,只需要一個表格。只需添加另一個字段。您可以使用枚舉類型命名它的狀態(「已阻止,未阻止」);
然後執行此:
Select * from contacts where status = 'unblocked';
通過這種方式,你能不能把SQL處理器輕鬆的工作,因爲它僅訪問一個表,而不是加入2以上。
相關問題
- 1. SQL查詢來獲取格式的結果從一個表
- 2. 查詢3個表格,在一個表格中顯示結果
- 3. 從兩個表中獲取結果
- 4. SQL查詢,從兩個不同的表中獲取結果
- 5. 優化查詢以從兩個表中獲取結果
- 6. 如何從兩個表在一個查詢中獲取記錄
- 7. 從兩個表中獲取價格
- 8. 如何使用單個查詢從兩個表中獲取結果
- 9. 如何結合兩個MySQL查詢在一個表格行中顯示結果
- 10. 從一個查詢中的兩個表中打印結果
- 11. 單個查詢從一個表中檢索兩個xml結果
- 12. 如何從兩個表中的結果中獲得一個ID
- 13. 如何從單個查詢中的兩個表中獲取行?
- 14. 得到一個結果表,從兩個結果集查詢
- 15. SQL - 根據查詢結果從一個表中獲取計數
- 16. 在DAO類的單個列表中從兩個查詢中獲取結果
- 17. Sequelizejs從1個查詢中獲取2個mysql表的結果
- 18. 如何在MySQL中選擇兩個表格,但僅從第二個表格中選擇一列?
- 19. 從兩個表格構建一個數組(從一個表格中獲取一個表格以獲得另一個表格的產品)
- 20. 如何連接兩個表格,但從表格一得到結果,而表格二沒有輸入?
- 21. 從表格子句中的兩個表中選擇結果
- 22. 如何從另一個表中的值中獲取表格
- 23. 從兩個表格中選擇結果併合並結果
- 24. 從多個表格中查詢多個表格中的條件
- 25. 從兩個不同的表格中獲得結果mysql
- 26. 如何從第一個表格獲取一行並從第二個表格獲取其他表格
- 27. 從兩個表格計算MySQL查詢
- 28. 如何使兩個查詢的結果(同一列)從兩個查詢顯示在單個查詢表中
- 29. 更新查詢 - 從表格中總結出一個值,表格中的值
- 30. MySql從多個選擇表格中查詢結果
更新:感謝所有答案,我想知道如何限制這些結果,因爲當我將我的LIMIT添加到Rudolph的sql查詢時,我的查詢失敗。 – newbie 2009-10-13 07:51:37
好吧,現在當我添加LIMIT到該查詢結束時它就起作用了。 thanx適用於所有回覆 – newbie 2009-10-13 07:56:20