4

私は2つのテーブルを持っています。1 つは連絡先情報、もう 1 つは都市 ID と名前です。例。

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

Table 2 Cities
CityID, CityName
1 Austin
2 Boston

Ben の本拠地と勤務地を示す単純なクエリを作成したいと考えています。

CityName を 2 回参照するクエリを含める方法がわかりません。

これまでのところ、私が持っているのは次のとおりです。

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
4

2 に答える 2

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
于 2013-10-10T01:03:32.750 に答える
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-- 詳細については、以下のリンクを参照してください。

于 2013-10-10T01:11:53.340 に答える