每个餐厅都有很多tagname
我想找出餐厅tagname中同时包含--‘商务宴请’,‘川湘菜’,‘火锅’,‘400以上’的怎么写,类似下面这样
select l1.restaurantName,l2.tagname from Restaurant l1,tagsMap l2
where l1.restaurantId = l2.restaurantId and l2.tagname in('商务宴请','川湘菜','火锅','400以上')
我这个是只要有一个标签满足就可以,要求是同时满足这些标签的
别写存储过程,最好是拼一句sql
------解决方案--------------------
for xml path(),论坛里面搜索一下吧。
------解决方案--------------------
修改一下:
select distinct l1.restaurantName,
stuff(( select ','+l2.tagname
from tagsMap l2
where l1.restaurantId = l2.restaurantId and
l2.tagname in('商务宴请','川湘菜','火锅','400以上')
for XML path('')
),1,1,'') as tagname
from Restaurant l1
------解决方案--------------------
不好意思,没多想,修改了一下,你试试:
select restaurantName,tagname
from
(
select l1.restaurantName,l2.tagname ,
COUNT(*) over(partition by l1.restaurantName) as tag_count
from Restaurant l1,tagsMap l2
where l1.restaurantId = l2.restaurantId
and l2.tagname in('商务宴请','川湘菜','火锅','400以上')
)t
where tag_count = 4