带有join子句和group by子句的mysql查询

时间:2016-11-22 05:55:49

标签: php mysql sql-server

我想要这个结果

------------------------------------------------------
c_name    |  c_id   | email_count | number_count |
-----------------------------------------------------
course1   | cid1234 |    7        |7             |
course10  | cid7489 |    4        |4             |
course9   | cid0987 |    2        |2             |
course5   | cid2321 |    2        |2             |
course6   | cid8905 |    1        |1             |
course2   | cid2134 |    1        |1             |
course3   | cid4352 |    1        |1             |
course7   | cid9087 |    1        |1             |
course8   | cid6574 |    1        |1             |
course4   | cid1244 |    0        |0             |
---------------------------------------------------

但是我得到了这样的结果

------------------------------------------------------ -----------
c_name    |         c_id            | email_count | number_count |
-------------------------------------------------------------------
null      | cid1234                 |    7        |7             |
null      | cid7489                 |    4        |4             |
null      | cid0987,cid2321         |    2        |2             |
null      | cid8905,cid4352,cid6574 |    1        |1             |
null      | cid2134,cid9087         |    1        |1             |
null      | cid1244                 |    0        |0             |
------------------------------------------------------------------

我有两个数据库表名称为(course_master)& (search_course)在一个表课程中有详细信息,例如 1.)课程名称为(c_name)

2。)课程ID为(c_id)

在另一张表中有三个库仑

1。)课程ID为(c_id)

2.)课程通过电子邮件发送为(c_eml)

3。)课程号码(c_num)

,例如

first table name course_master 
--------------------------
s.no | c_name  | c_id    |
--------------------------
1.   | course1 | cid1234 |
2.   | course2 | cid2134 |
3.   | course3 | cid4352 |
4.   | course4 | cid1244 |
5.   | course5 | cid2321 |
6.   | course6 | cid8905 |
7.   | course7 | cid9087 |
8.   | course8 | cid6574 |
9.   | course9 | cid0987 |
10.  | course10| cid7489 |
--------------------------

第二个表名称就像search_course

-----------------------------------------------
s.no.|   c_id  |     c_eml        |   c_num   |
-----------------------------------------------
1.   | cid8905 |example@host.com  | 9999999999|
2.   | cid7489 |  any email Id    | any number|
3.   | cid0987 | ------"--------  | -----"----|
4.   | cid1234 | ------"--------  | -----"----|
5.   | cid2134 | ------"--------  | -----"----|
6.   | cid4352 | ------"--------  | -----"----|
7.   | cid1234 | ------"--------  | -----"----|
8.   | cid1234 | ------"--------  | -----"----|
9.   | cid2321 | ------"--------  | -----"----|
10.  | cid2321 | ------"--------  | -----"----|
11.  | cid1234 | ------"--------  | -----"----|
12.  | cid9087 | ------"--------  | -----"----|
13.  | cid1234 | ------"--------  | -----"----|
14.  | cid1234 | ------"--------  | -----"----|
15.  | cid6574 | ------"--------  | -----"----|
16.  | cid1234 | ------"--------  | -----"----|
17.  | cid7489 | ------"--------  | -----"----|
18.  | cid0987 | ------"--------  | -----"----|
19.  | cid7489 | ------"--------  | -----"----|
20.  | cid7489 | ------"--------  | -----"----|

我尝试了我的水平最好,我甚至尝试了很多加入查询,但我认为课程ID正在进入群组,例如eml_count = 1,他们是该行中的3门课程,我是无法得到我想要的结果(相应的课程名称) .. soo请任何人都可以尝试为此写一个mysql查询,这对我来说将是非常有用的,谢谢你提前.... < / p>

2 个答案:

答案 0 :(得分:0)

我试过这个

select 
 c_name,A.c_id,
    count(c_eml) as 'ceml',COUNT(c_num) AS CNUMBER_COUNT
from #A(table 1) A
  left join #B(table_2)  B on
 A.c_id=B.c_id
group by
    c_name,A.c_id

答案 1 :(得分:0)

尝试那样......

select c_name,A.c_id,count(c_email) email_count,count(c_num)number_count A from course_master B 
inner join search_course on A.c_id=B.c_id group by B.c_id