我需要對Publications
以及Authors
與Publications
鏈接進行查詢。SQL - 當RIGHT表有多行時如何避免帶有LEFT JOIN的重複?
回答
更新:我明白了,現在,你需要的是這樣的: Concatenate many rows into a single text string?
- 老答案 - 可以篩選出多個結果與使用DISTINCT子句(http://www.w3schools.com/sql/sql_distinct.asp)
例如SELECT DISTINCT node.title,node.type ...
重複時,「distinct」很少是答案。重複可能是由不正確的「加入」或不符合預期的數據造成的。 「Distinct」消除症狀,而不是原因。 – HoneyBadger
然而,當處理大量的列和左/右連接與內部連接時,distinct有時是答案。這麻煩的空可以做各種事情 – MageeWorld
我已經嘗試過,DISTINCT子句不起作用在我的情況下... – 118218
以這種方式加入時,您不能禁止「重複」,假設RHS有多個行連接到指定連接屬性上給定的LHS元組。
我建議你正確使用內連接。其標準用途是統一主從關係。如果您正在使用它來實現任何其他的語義,你不能抱怨奇怪的結果,因爲它做正是什麼是應該的情況做(這你徵收),爲它是不原本打算服務。
- 1. 避免多個LEFT JOIN
- 2. 如何避免來自LEFT JOIN查詢的重複記錄?
- 3. SQL顯示不重複的行LEFT JOIN
- 4. PHP SQL JOIN避免ID重複
- 5. SQL服務器:LEFT JOIN重複行
- 6. 避免此LEFT JOIN上的空記錄
- 7. 避免重複行SQL Server
- 8. SQL要避免重複行
- 9. SQL服務器的多個JOIN:避免重複值
- 10. 如何避免SQL中的重複子查詢JOIN?
- 11. 如何在使用LEFT JOIN + ORDER BY時避免FileSort?
- 12. LEFT/RIGHT JOIN不返回空行
- 13. 在SQL LEFT重複NULL值的JOIN
- 14. 播種時如何避免重複行?
- 15. 我們應該避免使用LEFT JOIN
- 16. INNER/RIGHT/LEFT JOIN如何比FULL JOIN慢14倍?
- 17. COUNT()沒有DISTINCT多LEFT JOIN
- 18. 帶有LEFT JOIN的SQLite AVG()不返回所有行
- 19. 當與表加入時,避免重複每個實例的行
- 20. 如何用LEFT JOIN修復這個SQL?
- 21. Linq查詢與LEFT JOIN有多個表
- 22. 避免重複行
- 23. 避免重複行
- 24. 如何LEFT JOIN錶帶有可選條款
- 25. 多LEFT JOIN在多個表
- 26. LEFT JOIN只有第一行
- 27. MySQL LEFT JOIN重複結果
- 28. SQL Server等效於使用JOIN來避免重複的列
- 29. SQL JOIN重複行
- 30. SQL:避免重複數據
當LEFT JOIN時,將右側表條件放在ON子句中以獲得真正的左連接行爲。 (在WHERE,你會得到經常的內部連接結果。) – jarlh
嗨,謝謝你的回答,但我該怎麼做? – 118218
只需將表節點的條件從WHERE移動到ON。 I.e'... LEFT JOIN節點作爲author_reference_node ON author_reference_node.nid = author_reference.field_author_nid AND(node.title LIKE:title AND node.language =:language2 AND node.type =:type)...'。 – jarlh