【问题标题】:SQL Select inner join with multiple valueSQL选择具有多个值的内部联接
【发布时间】:2023-02-16 00:07:57
【问题描述】:

是否可以在一个 select 语句中获取所有值?

从下面的 SQL 语句中注意,province_name 和 city_name 引用同一列并使用 ID ...

这是sql语句:

SELECT CLIENT.name,
       CLIENT.province_id, CANADA.name as province_name,
       CLIENT.city_id,     CANADA.name as city_name
FROM ((CLIENT
INNER JOIN CANADA as ON CLIENT.province_id = CANADA.id)
INNER JOIN CANADA as ON CLIENT.city_id = CANADA.id)
WHERE CLIENT

为了更好地理解我的意思, 这是 CANADA 表的结构

CANADA_id name id parent_id
1 Canada 1000 0
2 (Province) Alberta 1100 1000
3 (Province) British Columbia 1200 1000
4 (city) Banff 1101 1100
5 (city) Calgary 1102 1100
6 (city) Victory 1201 1200
7 (city) Vancouver 1202 1200

我想返回如下表...

name province_id province_name city_id city_name
John 1100 Alberta 1102 Calgery

非常感谢你的帮助。

【问题讨论】:

    标签: sql select inner-join


    【解决方案1】:
    SELECT CLIENT.name,
           CLIENT.province_id, CANADA_province.name as province_name,
           CLIENT.city_id,     CANADA_city.name as city_name
    FROM CLIENT
    INNER JOIN CANADA as CANADA_province
        ON CLIENT.province_id = CANADA_province.id
    INNER JOIN CANADA as CANADA_city
        ON CLIENT.city_id = CANADA_city.id
    WHERE CLIENT.name IS NOT NULL
    AND CLIENT.province_id IS NOT NULL
    AND CLIENT.city_id IS NOT NULL;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-01
      • 2021-12-08
      • 2010-12-26
      • 1970-01-01
      • 1970-01-01
      • 2018-06-19
      相关资源
      最近更新 更多