gpt4 book ai didi

mysql - 将内部联接结果合并到一列

转载 作者:行者123 更新时间:2023-11-30 21:32:28 25 4
gpt4 key购买 nike

我有一张商店表和一张商品表。商店表有很多项目,我的问题是我想搜索一个商店中可用的多个项目。

shop table
id | name
---------
1 | Shop 1
2 | Shop 2

Item table
id | name | shop_id
----------------------
1 | JRC | 1
2 | sukhoy | 1
3 | sukhoy | 2


当我要查找商品 jrc 和 sukhoy 时,它必须显示 Shop 1,因为这两个商品都在 Shop 1 上准备好了。

我的预期输出是

Output table
id | shopName | itemName
------------------------
1 | Shop 1 | JRC
2 | Shop 1 | sukhoy

我的查询是

select * from shops
inner join products as produk2 on produk2.shopId = shops.id and (produk2.name like "%sukhoy%")
inner join products as produk on produk.shopId = shops.id and (produk.name like "%jrc%")

之所以有效,是因为它对每个内部连接使用不同的别名。但我想要的是,如何在不定义不同别名的情况下组合 2 连接的输出。或者如何将连接结果合并到同一列中?

最佳答案

我认为这可以满足您的需求:

select p.shop_id
from products p
group by p.shop_id
having sum(p.name like '%jrc%') > 0 and
sum(p.name like '%sukhoy%') > 0;

这将返回包含两种产品的商店 ID。当然,您可以将结果加入到 shops 以获取有关商店的更多信息。

关于mysql - 将内部联接结果合并到一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55496451/

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