我有一张这样的简单table。
Restaurant Category
-------------------------
Restaurant1 American
Restaurant1 French
Restaurant2 American
Restaurant2 French
看那张table,我可以看出餐馆有美式和法式两种。我还可以看到餐馆有美式和法式两种。看到这一点,我可以说有两个职位,既有美国和法国的类别。
有没有可能把它翻译成mysql?因此,查询必须类似于“getcount(restaurant)group by restaurant if category=american and category=french”。我知道这对mysql没有任何意义,但我似乎不知道如何做到这一点。
我注意到,如果美国和法国是分组的,如果职位是平等的,那么我可以很容易地按餐厅分组,但我不确定是否有一种方法在mysql中做到这一点。
举一个现实世界的例子,我试着统计一下wordpress中有多少帖子同时具有id为22的类别和id为25的类别。下面的查询应该返回3。这是有多少职位有22和25类。
SELECT COUNT(tr.object_id) AS post_count
FROM wp_term_relationships AS tr
WHERE tr.term_taxonomy_id=25 AND tr.term_taxonomy_id=22
以前有人碰到过这个问题吗?
1条答案
按热度按时间hgqdbh6s1#
您可以使用这样的查询。它使用一个派生表来计算每个餐厅有多少不同的类别与之匹配
American
或者French
. 然后,它将拥有两个匹配类别的餐厅的数量相加,即它们都是American
以及French
.输出(用于示例数据)
sqlfiddle上的一个小演示
更新
对于添加到帖子中的查询,您需要将其重写为: