2009-04-18 138 views
2

我不知道如何去做這件事,但我需要你們的緊急援助。MySql:從多個表中選擇

我有兩個表,即States,Package_Details。以下是表格的細節。

美國

  • STATE_ID
  • STATE_NAME

Package_Details

  • ID
  • sender_state //存儲狀態的狀態ID
  • receiver_state //商店狀態的狀態ID

現在我有問題構造SQL查詢,將選擇並顯示在Package_Details與國家表中的對應STATE_NAME更換sender_state和receiver_state記錄。

非常感謝您的時間。

回答

5

你需要一個連接。例如:

SELECT p.id, s1.state_name AS sender, s2.state_name AS receiver 
    FROM 
     package_details p 
    JOIN states s1 ON (p.sender_state = s1.state_id) 
    JOIN states s2 ON (p.receiver_state = s2.state_id) 

注意如何可以使用states查詢兩次通過賦予它一個別名(states s1),並使用別名來引用表。

如果您需要經常進行此操作,您可能希望創建一個視圖。

關於連接的MySQL文檔在這裏:http://dev.mysql.com/doc/refman/5.0/en/join.html。有關創建視圖的文檔位於:http://dev.mysql.com/doc/refman/5.0/en/create-view.html

+0

我相信你知道加入。你需要學習的是查詢中的「別名」表。這使您可以在查詢中多次使用表格。 – 2009-04-18 09:15:33