是否可以从同一查询中从表A中抽取的值计算表B中匹配的结果数?
例如 -
tableA
--------------
color | type
-------|------
blue | car
red | truck
orange | car
green | car
-
tableB
--------------
color | sku
-------|------
blue | 1
red | 2
orange | 3
green | 4
orange | 5
green | 6
问题 - tableB中有多少行与type = car有关?结果应该返回5.
使用两个查询和一些PHP这非常简单,我只是好奇,如果单个MySQL查询可以实现,并且它会更有效。
答案 0 :(得分:4)
尝试以下查询
SELECT count(*) AS count
FROM tableB b, tableA a
WHERE b.color = a.color
AND type = 'car';
答案 1 :(得分:2)
在表格中加入与您的类型相对应的颜色:
SELECT COUNT(*) FROM tableB JOIN tableA using (color) WHERE type = 'car';
答案 2 :(得分:0)
我会尝试类似的事情:
SELECT COUNT(*)
FROM tableA, tableB
WHERE tableA.color=tableB.color
AND tableA.type='car';