2011-09-02 19 views
0

我有一個表,看起來像這樣:MySQL的:獲取結果給出的條件

target_id || country_code

5 ----------- || ------- US ----

5 ----------- || - ------ CA ---

2 ---------- || ------- FR ----

3 ------ ------ ---- || ------- SP ----

3 ---------- || ------- FR ----

另一張如下所示的表格:

target_id || REGION_NAME

5 ----------- || ---北美

2 ----------- || -----法蘭西。 ----

3 ----------- || -----歐洲一些

正如你可以看到,表2中包含位置和target_ids,而表1包含其中這些地點是針對性的。在北美的情況下,它的目標是5,屬於加拿大和美國。另一方面,法國的target_id爲2,而一些歐洲的target_id爲3,其中又包含法國和西班牙。

我想通過MySQL做什麼,是獲取target_id,country_code,country_name的表格,但僅限於國家/地區。這意味着,僅對於表1中僅有一行的target_id(例如,我們知道FR是一個國家,因爲2號只在FR中,而且我們知道3代表一個區域,因爲它既有西班牙也有法國相關)。這可能通過MySQL來完成,或者我會需要兩個查詢和PHP嗎?

謝謝!

回答

2
SELECT t1.target_id, t1.country_code, t2.region_name 
    FROM table1 t1 
    JOIN table t2 
    ON t1.target_id = t2.target_id 
    WHERE (SELECT COUNT(*) FROM table1 t3 WHERE t3.target_id = t1.target_id) = 1 

table1是一個與國家代碼,table2是一個與區域名稱。