gpt4 book ai didi

mysql - 左连接查询返回的数据不正确

转载 作者:行者123 更新时间:2023-11-30 00:37:50 25 4
gpt4 key购买 nike

表格:国家

国家ID |国家/地区名称

    1  | Usa
2 | Canada
3 | Russia
4 | Japan

表:(many2many)country_services

国家ID |服务_id

    1   |    1
1 | 2
1 | 3
1 | 4
2 | 1
2 | 2
2 | 3
3 | 1

表:服务

service_id |服务名称

    1  | service1
2 | service2
3 | service3
4 | service4
5 | service5
6 | service6

我正在尝试得到下一个结果:

service_id |国家/地区名称 |服务名称

    1  | USA                             | service1
2 | USA | service2
3 | USA | service3
4 | USA | service4

我的查询是

SELECT s.service_id
, s.service_name
, c.country_name
FROM services s
LEFT
JOIN country_service cs
ON cs.service_id = s.service_id
AND cs.country_id = 1
LEFT
JOIN countries c
ON c.country_id = cs.country_id;

它返回:

service_id | service_name | service_name

   1  | service1                        | USA
2 | service2 | USA
3 | service3 | USA
4 | service4 | USA
5 | service5 | null
6 | service6 | null

请帮我纠正我的疑问。谢谢

最佳答案

左外连接将返回查询左侧指定表中的所有行,以及查询右侧表中的匹配行。

为了实现您正在寻求的结果,您需要使用 INNER JOIN 来代替:

SELECT services.service_id, services.service_name, countries.country_name 
FROM services
INNER JOIN country_service
ON services.service_id = country_service.service_id
AND country_service.country_id =1
INNER JOIN countries
ON country_service.country_id = countries.country_id

关于mysql - 左连接查询返回的数据不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22018378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com