回答
SELECT * FROM item WHERE id NOT IN (SELECT parent_id FROM item)
還有其他的方式可以寫這個查詢,可能會更高性能。但是這應該讓你開始。
它將選擇在parent_id
列中找不到id
的所有記錄 - 表示此記錄沒有子女。
SELECT [some cols]
FROM item i
LEFT JOIN item children ON children.parent_id = i.id
WHERE children.id IS NULL;
正確答案。如果parent_id被編入索引,它將是有效的。 – 2011-06-18 23:37:15
你可以提供一些圍繞你的'JOIN'條件和'WHERE'子句的教育嗎? –
@Jason,當然:這是技術被稱爲自我排斥連接。您正在向結果集添加更多信息,然後從最終結果集中消除您不需要的所有內容。下面是排除連接的一個很好的解釋:http://www.xaprb.com/blog/2005/09/23/how-to-write-a-sql-exclusion-join/一旦你讀到你可以在這裏看到一個稍微複雜一些的示例:http://adam-bernier.appspot.com/post/38001/the-self-exclusion-join – bernie
- 1. mysql連接查詢
- 2. mysql連接查詢
- 3. MySql的連接查詢左連接
- 4. MySQL查詢左連接
- 5. Mysql連接查詢問題
- 6. 使用連接mysql查詢
- 7. MySQL多連接查詢
- 8. 查詢MYSQL連接(2表)
- 9. Mysql查詢內部連接?
- 10. 連接2個MySQL查詢
- 11. MySQL的左連接查詢
- 12. MySQL的連接查詢
- 13. MySQL連接和查詢
- 14. MySQL連接查詢更新
- 15. MySQL db連接查詢
- 16. MySQL連接查詢問題
- 17. 雙連接mysql查詢
- 18. MySQL查詢表連接
- 19. MySQL:3表連接查詢?
- 20. 帶連接的Mysql查詢
- 21. 內連接查詢爲MySQL
- 22. mysql左連接查詢
- 23. MYSQL連接查詢結果
- 24. 查詢左連接mysql的
- 25. 左連接Mysql查詢
- 26. MYSQL查詢連接表
- 27. MYSQL連接查詢語法
- 28. PHP連接MySQL查詢
- 29. mysql連接查詢與like?
- 30. mysql的連接查詢
請問您可以使用連接給解決方案嗎? – bob
當然可以。我建議你在原文中指定這些要求。 –
這會製造一個不必要的臨時表。 – 2011-06-18 23:38:53