真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql怎么集合查詢 mysql 集合

求一個(gè)java mysql 查詢思路

其實(shí)我也沒(méi)有啥好辦法,我甚至推薦你使用樓上說(shuō)的方法,直接select * 將數(shù)據(jù)全部查出后,在service中用java處理數(shù)據(jù)更加方便。

創(chuàng)新互聯(lián)建站是專業(yè)的奈曼網(wǎng)站建設(shè)公司,奈曼接單;提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行奈曼網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

如果要強(qiáng)行使用sql查出來(lái),我這里寫了這么一段:

首先因?yàn)槭峭粡埍恚鶕?jù)不同條件將結(jié)果拼接在一起,我能想到的就是用left join,我按照不同條件將數(shù)據(jù)分成如下幾段:

a段:姓名段,作為left join的主表,只有姓名;

b段:吃了早餐段;

c段:沒(méi)吃早餐段;

d段:吃了晚餐段;

e段:沒(méi)吃晚餐段;

f段:吃了飯段;

g段:沒(méi)吃飯段。

除了a段以外,其他段都是根據(jù)自身?xiàng)l件

SELECT

name,

count(*) ? ?count,

sum(weight) sum,

然后依次左連接將所有段通過(guò)姓名連接到一起,最終組成的sql語(yǔ)句如下:

SELECT

a.name 姓名,

ifnull(b.count, 0) 吃了早餐的次數(shù),

ifnull(b.sum, 0) ? 吃了早餐的重量,

ifnull(c.count, 0) 沒(méi)吃早餐的次數(shù),

ifnull(c.sum, 0) ? 沒(méi)吃早餐的重量,

ifnull(d.count, 0) 吃了晚餐的次數(shù),

ifnull(d.sum, 0) ? 吃了晚餐的重量,

ifnull(e.count, 0) 沒(méi)吃晚餐的次數(shù),

ifnull(e.sum, 0) ? 沒(méi)吃晚餐的重量,

ifnull(f.count, 0) 吃了飯的次數(shù),

ifnull(f.sum, 0) ? 吃了飯的重量,

ifnull(g.count, 0) 沒(méi)吃飯的次數(shù),

ifnull(g.sum, 0) ? 沒(méi)吃飯的重量

FROM

(SELECT DISTINCT name

FROM T) a LEFT JOIN

(SELECT

name,

count(*) ? ?count,

sum(weight) sum

FROM T

WHERE type = 0 AND status = 0

GROUP BY name) b ON a.name = b.name

LEFT JOIN

(SELECT

name,

count(*) ? ?count,

sum(weight) sum

FROM T

WHERE type = 0 AND status = 1

GROUP BY name) c ON a.name = c.name

LEFT JOIN

(SELECT

name,

count(*) ? ?count,

sum(weight) sum

FROM T

WHERE type = 1 AND status = 0

GROUP BY name) d ON a.name = d.name

LEFT JOIN

(SELECT

name,

count(*) ? ?count,

sum(weight) sum

FROM T

WHERE type = 1 AND status = 1

GROUP BY name) e ON a.name = e.name

LEFT JOIN

(SELECT

name,

count(*) ? ?count,

sum(weight) sum

FROM T

WHERE status = 0

GROUP BY name) f ON a.name = f.name

LEFT JOIN

(SELECT

name,

count(*) ? ?count,

sum(weight) sum

FROM T

WHERE status = 1

GROUP BY name) g ON a.name = g.name

T表結(jié)構(gòu)為:

(因?yàn)橐詎ame字段進(jìn)行連接,type和status作為條件,建議以該三個(gè)字段作為索引)

T表測(cè)試數(shù)據(jù)為:

運(yùn)行結(jié)果為:

MySQL——集合查詢

SELECT語(yǔ)句的查詢結(jié)果是記錄的集合,多個(gè)SELECT語(yǔ)句的結(jié)果可進(jìn)行集合操作

分類:

案例:查詢中國(guó)的用戶與其他年齡小于18歲的用戶

并集

交集

差集

mysql復(fù)雜查詢--多表查詢

多表查詢是指基于兩個(gè)和兩個(gè)以上的表或是視圖的查詢.在實(shí)際應(yīng)用中,查詢單個(gè)表可能不能滿足你的需求,(如顯示sales部門位置和其員工的姓名),這種情況下需要使用到(dept表和emp表)

自連接是指在同一張表的連接查詢

select * from emp where empno=(select mgr from emp where ename='ford');

子查詢是指嵌入在其它sql查詢語(yǔ)句中的select語(yǔ)句,也叫嵌套查詢

單行子查詢是 指只返回一行數(shù)據(jù)的子查詢語(yǔ)句

select * from emp where deptno=(select deptno from emp where ename='smith');

多行子查詢指返回多行數(shù)據(jù)的子查詢 使用關(guān)鍵字 in

如果我們的一個(gè)子查詢,返回的 結(jié)果是多列,就叫做列子查詢

合并多個(gè)select語(yǔ)句的結(jié)果,可以使用集合操作符 union,union all

mysql中 怎樣根據(jù)姓名集合查詢id集合?

select *from emp where name in('張三','李四','王五');

如果()里面的是變量,可以用數(shù)組,只不過(guò)數(shù)組要處理一下


本文名稱:mysql怎么集合查詢 mysql 集合
當(dāng)前網(wǎng)址:http://weahome.cn/article/hpchpj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部