【问题标题】:MySQL: Get results given a conditionMySQL:在给定条件下获取结果
【发布时间】:2011-09-02 11:22:07
【问题描述】:

我有一张如下所示的表格:

target_id ||国家代码

5-----------||--------美国----

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

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

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

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

还有一个看起来像这样的表:

target_id ||地区名称

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

2------------||-----法国------

3-----------||-----一些欧洲

如您所见,表 2 包含位置和 target_ids,而表 1 包含这些位置的目标位置。在北美的情况下,它的目标是 5,它属于加拿大和美国。另一方面,法国的 target_id 为 2,Some Europe 的 target_id 为 3,其中又包含法国和西班牙。

我想通过 MySQL 做的是获取一个包含 target_id、country_code、country_name 的表,但仅限于国家/地区。这意味着,仅针对仅在一行中的表 1 的 target_ids(例如,我们知道 FR 是一个国家,因为数字 2 仅在 FR 中,我们知道 3 代表一个地区,因为它同时具有西班牙和法国联系)。这可以通过 MySQL 来完成,还是我需要两个查询和中间的 PHP?

谢谢!

【问题讨论】:

    标签: mysql


    【解决方案1】:
    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是带地区名称的。

    【讨论】:

      猜你喜欢
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多