2010-10-28 46 views
1

可能重複:
SQL query multiple tables基本的MySQL表加入?

我有這2個表:

ASSOCIATION_TABLE:[ID,鍵,名稱,經理,辦公室,銀行,客戶]

OFFICE_TAB LE:[ID,姓名,地址,電話]

我目前運行此查詢來獲取我需要一個數據集:

SELECT `name`, `key`, `office`, `manager`, `id` 
FROM `database`.`ASSOCIATION_TABLE` 
WHERE `association`.`customer`=4; 

如何修改這個查詢從OFFICE_TABLE顯示的名稱,而不是ID?我認爲一個表連接是我的解決方案,但我堅定地確定它是什麼類型或如何使用它。

在此先感謝。

回答

2
SELECT `name`, `key`, ot.name AS OFFICE_NAME, `manager`, `id` 
    FROM `ASSOCIATION_TABLE` at 
     LEFT OUTER JOIN OFFICE_TABLE ot 
     ON ot.id = at.office 
WHERE `association`.`customer`=4; 

這是到OFFICE_TABLE的外連接。您的結果集將包含ASSOCIATION_TABLE中沒有OFFICE_TABLE記錄的任何記錄。

如果你只想返回與OFFICE_TABLE你會希望有一個內部的記錄結果加入,例如:

SELECT `name`, `key`, ot.name AS OFFICE_NAME, `manager`, `id` 
    FROM `ASSOCIATION_TABLE` at 
     INNER JOIN OFFICE_TABLE ot 
     ON ot.id = at.office 
WHERE `association`.`customer`=4; 
+1

+1:你是第一個,但我更漂亮:P相關:http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of -sql-joins.html – 2010-10-28 01:18:42

+0

更漂亮;感謝您的鏈接:D – bernie 2010-10-28 01:21:53

0

除了什麼@Adam說,你可以看看官方MySQL documentation

我也建議你看看谷歌一個很好的SQL教程。

0
SELECT o.`name`, `key`, `office`, `manager`, `id` 
FROM `database`.`ASSOCIATION_TABLE` 
JOIN `database`.`OFFICE_TABLE` o 
USING (id) 
WHERE `association`.`customer`=4; 
+0

這是快速和骯髒的,我也建議爲每個列和表使用指定別名。 – 2010-10-28 04:25:22