首先准备四张表A、B、C、D, -------------------------------- A | B | C | D a b | a c | a d | d e 1 1 | 1 1 | 1 A | A 1 2 2 | 1 3 | 2 B | B 2 3 4 | 1 4 | 3 C | C 3 4 6 | 2 1 | 4 D | D 4 -------------------------------- 下面我们需要用一条sql
首先准备四张表A、B、C、D,
| @@######@@ |
下面我们需要用一条sql语句将A表所有的列,B表对与A表a字段相关联的列求count,通过C表,将D表与A表关联起来,得到的结果如下:
| @@######@@ |
Mysql语句解决:
DESTOON B2B网站管理系统是一套完善的B2B(电子商务)行业门户解决方案。系统基于PHP+MySQL开发,采用B/S架构,模板与程序分离,源码开放。模型化的开发思路,可扩展或删除任何功能;创新的缓存技术与数据库设计,可负载千万级别数据容量及访问。
| @@######@@ |
【相关文章】
- 如何理解SQL Server中的Ranking(1)
- 如何从MySQL数据库表中检索数据
- MYSQL数据库的查询优化技术
<p>-------------------------------- <br>A | B | C | D <br>a b | a c | a d | d e <br>1 1 | 1 1 | 1 A | A 1 <br>2 2 | 1 3 | 2 B | B 2 <br>3 4 | 1 4 | 3 C | C 3 <br>4 6 | 2 1 | 4 D | D 4 <br>--------------------------------<br></p>
<p>1 1 3 1 <br>2 2 1 2 <br>3 4 0 3 <br>4 6 0 4<br></p>
<p>select A.a,A.b,IFNULL(c,0) as c,D.a <br>from (select 1 as a,2 as b union all<br>select 2 as a,2 as b union all<br>select 3 as a,4 as b union all<br>select 4 as a,6 as b) as A <br>left outer join <br>(select a,count(a) as c from(<br>select 1 as a,3 as c union all<br>select 1 as a,3 as c union all<br>select 1 as a,3 as c union all<br>select 2 as a,3 as c ) B group by a) as B<br>on A.a=B.a <br>join <br>(select 1 as a,'A' as d union all<br>select 2 as a,'B' as d union all<br>select 3 as a,'C' as d union all<br>select 4 as a,'D' as d ) as C <br>on A.a=C.a <br>join(select 1 as a,'A' as d union all<br>select 2 as a,'B' as d union all<br>select 3 as a,'C' as d union all<br>select 4 as a,'D' as d ) as D<br>on D.d=C.d<br></p>









