MySQL:根据条件获得结果

时间:2011-09-02 11:22:07

标签: 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_ids只有一行(例如,我们知道FR是一个国家,因为数字2仅在FR中,我们知道3代表一个地区,因为它同时包含西班牙和法国相关)。这是可以通过MySQL做的还是我需要两个查询和中间的PHP?

谢谢!

1 个答案:

答案 0 :(得分: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是具有地区名称的代码。