2011-02-28 125 views
0

表一个MySQL的选择行和计数每个连接的不同行

product c 
========================================== 
sample_1 Line 
sample_1 LLk 
sample_1 LLk 
sample_1 LLk 
sample_1 LLk 
sample_2 LLk 
sample_3 LLk 
sample_2 LLk 
sample_3 LLk 
sample_2 Line 

加上这个表中的两个

a h  r 
========================================== 
LLk sample_1 gw 
LLk sample_2 okp 
LLk sample_3 ijof 
Line xe  rr3 
LLk sample_4 gr2 
Line xx2  o3 

最后会是这样..

基于从表2,其中在搜索a = LLk

这是从表1和表2产生的表3

product counts 
============================ 
sample_1 4 
sample_2 1 
sample_3 2 
sample_4 0 

细节链接,这个问题 http://pastebin.com/ds0iS4GU

+0

如何'sample_2'数为1的答案?我认为计数应该是b 2 ..将你的plz写出确切的条件 – diEcho 2011-02-28 06:46:13

回答

0

你在找这样的事情?

select product, count(a) 
from table_two 
inner join table_one on product=h and c=a 
where a = 'LLk' 
group by product 
+0

你的解决方案不会返回'sample_4'。 – 2011-03-10 02:58:19

+0

哎呦没有看到sample_4,那应该只需要一个左连接,看起来好像已经回答了它吧 – P4ul 2011-03-14 21:09:22

1

这会给你你正在寻找

select h, count(t1.product) from t2 LEFT JOIN t1 ON t1.c=t2.a and t1.product=t2.h where t2.a='LLk' group by t2.h