gpt4 book ai didi

mysql - 显示来自两个值的名称

转载 作者:行者123 更新时间:2023-11-29 02:45:20 25 4
gpt4 key购买 nike

我正在尝试获取 SQL 代码,但真的不知道该怎么做,所以我会解释我想要什么。

我有 4 个表,分别是 Person、Customer、Adres 和 Store。现在我必须显示每个客户的名字,他们住在与有商店的城市相同的城市。所以首先我通过以下方式弄清楚哪些人是客户:

SELECT person_name
FROM person
WHERE person_id IN
(SELECT Person_Person_Id
FROM customer);

哪些商店在哪个城市:

SELECT Store_name, adres_city
FROM store s, adres a
WHERE s.Adres_Adres_Id = a.adres_id;

请注意,person_person_id 与 person_id 相同,只是一个 fk。

我被这段代码困住了,不知道如何从这里走得更远。我的表 adres = adres_city 的列名。

最佳答案

好的,如果我知道你想要什么,请尝试这样做:

select --distinct   
b.Adres_City,
a.person_id
from
dbo.Person a
join dbo.Adres b on a.adres_adres_id = b.Adres_Id
join dbo.Customer c on a.person_id = c.Person_Person_Id
join dbo.Store d on b.Adres_Id = d.Adres_Adres_Id

如果您不确定,您在表中的所有键都是唯一的,请在第一个字符串中取消注释 --distinct。

或者,如果您想了解您所在城市的统计数据,请执行以下操作:

select 
b.Adres_City,
count(distinct a.person_id) as cnt
from
dbo.Person a
join dbo.Adres b on a.adres_adres_id = b.Adres_Id
join dbo.Customer c on a.person_id = c.Person_Person_Id
join dbo.Store d on b.Adres_Id = d.Adres_Adres_Id
group by b.Adres_City

如果对你有帮助,请告诉我。

更新 1:

select --distinct   
b.Adres_City,
a.person_id
from
dbo.Person a
join dbo.Adres b on a.adres_adres_id = b.Adres_Id
join dbo.Customer c on a.person_id = c.Person_Person_Id
where
b.Adres_City in (
select y.Adres_City
from dbo.Store x join dbo.Adres y on y.Adres_Id = x.Adres_Adres_Id
)

关于mysql - 显示来自两个值的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43309826/

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