gpt4 book ai didi

非唯一重复项的 SQL 查询帮助

转载 作者:行者123 更新时间:2023-12-04 17:05:00 24 4
gpt4 key购买 nike

我想不通这个。我有这个查询:

SELECT 
p.person_id,
p.first_nm,
p.last_nm,
pu.purchase_dt,
pr.sku,
pr.description,
a.address_type_id,
a.city_cd,
a.state_cd,
a.postal_cd
FROM
person p
INNER JOIN address a ON p.person_id = a.person_id
INNER JOIN purchase pu ON pu.person_id = p.person_id
INNER JOIN product pr ON pr.product_id = pu.product_id

足够简单 - 我只需要获取我们已向其运送退货的客户的信息。但是,由于 addressType 表
AddressType

address_type_id address_type_desc
------------------------------------
1 Home
2 Shipping

一些客户在地址表中有多个地址,创建了这样的非唯一重复条目。
1,Smith, John, 12/01/2009, A12345, Purple Widget, 1, Anywhere, CA, 12345
1,Smith, John, 12/01/2009, A12345, Purple Widget, 2, Somewhere, ID, 54321

我想让查询只返回一行/人并返回家庭地址(如果有),返回送货地址。

这看起来很简单,也许只是我感冒了,但这让我有些摸不着头脑。

最佳答案

您想更改您的连接,以便它返回 min(addressID) 而不是所有这些:

        INNER JOIN address a ON p.person_id = a.person_id
inner join (select person_id, min(address_type_id) as min_addr
from address group by person_id) a_min
on a.person_id = a_min.person_id and a.address_type_id = a_min.min_addr

关于非唯一重复项的 SQL 查询帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307507/

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