2015-12-15 120 views
0

我想从表中匹配来自另一个表的计数的数据,但我在这方面遇到了一些麻烦。MySQL计数加入二进制字段

我的表结构是这样的:

tbl_files:

id|hash|title|desc 

tbl_list:

id|hex_hash|user 

hex_hash是二进制

我当前的查询看起来是这样的,它的选择只有一个条目,而不是整个表,因为我正在尝试做。

SELECT *, COUNT(*) as count 
FROM tbl_files a, tbl_list b 
WHERE BINARY HEX(`b`.`hex_hash`) = `a`.`hash` 

基本上,我想从tbl_files选择*和两个表中添加匹配哈希的计数这样最终的数组:提前

id|hash|title|desc|COUNT 

希望有人能够帮助这一点,谢谢!

回答

0

试试这个:

SELECT *, COUNT(*) as count 
FROM tbl_files a, tbl_list b 
WHERE BINARY HEX(`b`.`hex_hash`) = `a`.`hash` 
group by id 
+0

哇,这是一个愚蠢的错误,现在的工作,感谢alots! –

+0

我怎么能添加另一个计数从同一张表,但与另一个条件? –

+0

@JohnKonolol使用一个case语句'sum(case when then then else 0 end)as SumOfCondition',所以当真实1将被返回并加到总和上。如果不是真的,则添加0,这不会影响总和。 – xQbert