2016-01-23 141 views
0

還有一個問題。我需要你的幫助。如何比較使用MySQL的元組?

列出已輸入的相同(相同的)但與疾病相關的藥物列表。

same medications identical_with

different association協會

我不知道該怎麼做。

結果應該是在這種情況下:

enter image description here結果

回答

1

要解決您的問題,您需要使用兩次表關聯。以下代碼應該是OK:

select 
    i.Name_1, i.Name_2 
from 
    association a 
inner join 
    identical_with i 
    on i.Name_1 = a.Name 
inner join 
    association a2 
    on i.Name_2 = a2.Name 
where 
    a2.Fachname <> a1.Fachname 
+0

完美的作品,很好,謝謝。 – user2379123

0

這是有點長了一個評論,雖然答案是明確的:「你不能在MySQL這樣做」。

您正在尋找的支持是針對分層或遞歸查詢。幾乎除MySQL以外的每個數據庫都內置了對這些類型查詢的支持。這基本上有四個選擇:

  • 切換到使用有這種支持的數據庫。免費的數據庫包括Postgres,SQL Server Express和Oracle Express。
  • 如果限制等效深度,可以使用repeated self joins
  • 您可以在存儲過程中使用while循環執行此操作。但是,這不是一個單獨的SQL語句。
  • 使用a nested set model
  • 使用存儲完整路徑的方法。

不幸的是,最後兩個方法需要觸發器來維護插入,更新和刪除的數據結構。

+0

感謝您的回答,戈登。但是,如果你看上面,你會看到一個很好的解決方案。塞德里克沒有使用嵌套集模型或重複的自聯接。你需要完成的任務是使用兩個內部聯接和一個第二個表。也許你可以告訴我你的解決方案,這可能會有所幫助。 – user2379123

+0

@ user2379123。 。 。這工作深一層。它不適用於遍歷多個級別的相同鏈接。 –