2015-05-01 32 views
0

我有兩個外鍵指向同一個表的表:如何對具有多個外鍵的表執行正確的SQLite查詢?

CREATE TABLE person (
    id INTEGER NOT NULL, 
    living_city INTEGER, 
    birth_city INTEGER, 
    FOREIGN KEY (living_city) REFERENCES city(id), 
    FOREIGN KEY (birth_city) REFERENCES city(id) 
) 

CREATE TABLE city (
    id INTEGER NOT NULL, 
    name VARCHAR 
) 

我增加了一些數據,所以表的樣子:

person 
    1 peter 1 2 
    2 mary 1 1 
    3 ed  2 3 

city 
    1 london 
    2 paris 
    3 rome 

這個問題看起來很容易,但我可以找到如何做到這一點...我已經搜索了所有谷歌!

我正在尋找類似下面的,但得到的外鍵的名稱,而不是數字(ID)的查詢:

SELECT名字,living_city,birth_city從一個人

期望的結果是:

> peter london paris 
    > mary london london 
    > ed  paris rome 

謝謝!

+0

爲了實現這個目標,您需要將'person'表加入'city'表。這是相當直截了當的SQL,令人驚訝的是「所有谷歌」都沒有爲你帶來結果 –

回答

2
SELECT name, L.living_city, B.birth_city 
FROM person 
INNER JOIN city as B 
    ON birth_city = B.id 
INNER JOIN city as L 
    ON living_city = L.id