【发布时间】:2014-01-15 14:25:18
【问题描述】:
我想返回一个数字,但查询需要覆盖 3 个表,我想! 这是一个简单的例子,说明这 3 个表的情况(剪掉了几列)
table: opencall
---------------------------------
Users name | Site | Phone |
---------------------------------
John Smith | Leeds | 0113 1234567
table: userdb
-------------------------------------
emailAd | site | company |
-------------------------------------
user@domain.com | Leeds | Yorks Post
table: company
----------------------------
pk_company_id | division_name |
----------------------------
Yorks Post | NORTH
现在,我要做的是在 opencall 中找到“division_name”为“NORTH”的总行数,我尝试了一些查询,但它们总是返回一个太大的数字。
这是我尝试过的一个示例:
SELECT count(*) FROM opencall, company, userdb WHERE userdb.site = opencall.site AND userdb.company = company.pk_company_id AND opencall.logdatex BETWEEN 1385041200 and 1388041200 AND opencall.condition NOT IN (8,9,11,12,19) AND company.division_name = 'NORTH`'
但是,这会返回超过 8,000 的结果,就像我刚刚输入的那样:
SELECT count(*) FROM opencall where logdatex BETWEEN 1385041200 and 1388041200 AND condition NOT IN (8,9,11,12,19)
这将返回 128,因此我在限制 Division_name 时所追求的数字应该在 20 左右。对此的任何帮助将不胜感激。
【问题讨论】:
标签: mysql sql select join distinct