2013-10-10 59 views
4

我有2個表。一個帶有聯繫信息,另一個帶有城市ID和姓名。例。查詢多個引用同一張表

Table 1 Contacts 
ID,Name, HomeCity, BusinessCity 
123,Ben,1,2 

Table 2 Cities 
CityID, CityName 
1 Austin 
2 Boston 

我想創建一個簡單的查詢,顯示本的家鄉城市和商業城市。

我不明白如何包含引用CityName兩次的查詢。

到目前爲止,所有我擁有的是:

SELECT Contacts.Name, Contacts.HomeCity, Contacts.BusinessCity, Cities.CityName 
FROM Contacts,Cities 
WHERE Contacts.ID=123 AND Contacts.HomeCity=Cities.CityID 

我只是不明白這一點。我想查詢,以顯示我的是:

Name, Home City, Business City 
Ben, Austin, Boston 

回答

2

語法可能不是完美的,但這種籠統的概念應該工作:

SELECT 
    Contacts.Name, 
    (SELECT CityName FROM Cities WHERE Contacts.HomeCity=Cities.CityID) AS HomeCity, 
    (SELECT CityName FROM Cities WHERE Contacts.BusinessCity=Cities.CityID) AS BusinessCity 
FROM Contacts WHERE Contacts.ID=123 
2

你可以加入的聯繫人表城市表多次:

SELECT contacts.name, 
    cities.CityName 'Home City', 
    cities2.CityName 'Business City' 
FROM contacts 
    JOIN cities ON contacts.homecity = cities.cityid 
    JOIN cities cities2 ON contacts.businesscity = cities2.cityid 
WHERE contacts.ID=123 

根據您的預期結果,您可能需要使用OUTER JOINs - 請參閱下面的鏈接瞭解更多信息。