我有一张商店桌子和一张物品桌子。商店表中有很多商品,我的问题是我想搜索一个商店中可用的多个商品。
select
regexp_substr('123:20:20' ,'(.*?)(:|$)', 1, 1, NULL, 1 ) HOUR,
regexp_substr('123:20:20' ,'(.*?)(:|$)', 1, 2, NULL, 1 ) MIN,
regexp_substr('123:20:20' ,'(.*?)(:|$)', 1, 3, NULL, 1 ) SECOND
from dual;
当我要查找项目jrc和sukhoy时,它必须显示Shop 1,因为这两个项目都已在Shop 1上准备就绪。
我的预期输出是
:root {
--devHeight: 86vh; //*This value changes
}
.div{
height: calc(var(--devHeight)*0.10); //change multiplier to suit required height
}
我的查询是
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
之所以起作用,是因为每个内部联接使用不同的别名。 但是我想要的是,如何在不定义其他别名的情况下合并这2个连接的输出。或者如何将联接结果合并到同一列中?
答案 0 :(得分:0)
您可以只使用一个联接:
select * from shops
inner join products as produk
on produk.shopId = shops.id
and (produk.name like "%jrc%" OR produk.name like "%sukhoy%")
答案 1 :(得分:0)
我认为这可以满足您的要求
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
,以获得有关商店的更多信息。