mysql 複雜sql子查詢的例項
在我們的實際專案中,有時候需要寫一下資料彙總和查詢,哪麼子查詢就必不可少。
比如我現在有三張表:
lch_resource_attribute,idx_lch_resource_category,lch_resource_games
那麼我現在要查詢某個應用的子分類的話,用 left join on左連線
select l.game_id as 應用id,l.title as 主分類,m.title as 次分類 from (select * from (SELECT a.game_id, GROUP_CONCAT(b.title) as title FROM `lch_resource_attribute` AS b
,`idx_lch_resource_category` AS a WHERE ((b.id = a.category_id or b.id =a.parent_id) and level = 1) AND b.status =1 and a.game_status = 1 group by a.game_id order by
a.game_id asc) as g) as l left join (select * from (SELECT e.game_id, GROUP_CONCAT(d.title) as title FROM `lch_resource_attribute` AS d ,`idx_lch_resource_category` AS
e WHERE ((d.id = e.category_id or d.id =e.parent_id) and level = 2) AND d.status =1 and e.game_status = 1 group by e.game_id order by e.game_id asc) as k) as m on
l.game_id = m.game_id order by l.game_id;
結果如下:
+----------+--------------------------------------------------------+------------------------------+
|應用id | 主分類 | 次分類 |
+----------+--------------------------------------------------------+------------------------------+
| 1 | 消消樂 | NULL |
| 3 | 卡牌,撲克也,智,休 | 休智,閒 |
| 4 | 跑酷 | NULL |
| 5 | 卡牌,訊息好 | NULL |
| 8 | 2.1,仙劍 | NULL |
| 9 | 2.1,公共 | NULL |
| 10 | 冒險,籃球 | NULL |
| 12 | 網遊卡牌,也不錯 | 卡戲,撲錯 |
| 14 | 冒幻 | NULL |
+----------+--------------------------------------------------------+------------------------------+
查詢應用基本資訊(包含大小和上線時間),主分類和次分類,這個時候就要先查詢主分類和次分類,然後在查應用屬性。
select k.id, k.name, k.package, k.company, k.developer,k.link,k.size,k.online_time, g.c_title as 主分類,g.s_title as 次分類 from (select * from (SELECT c.id, c.name,
c.package, c.company,
c.developer, p.link,p.size, FROM_UNIXTIME(p.update_time) as online_time FROM
`lch_resource_games` AS c, `idx_lch_resource_version` AS p WHERE c.id = p.game_id AND p.status =1 order by c.id asc) as f) as k, (select * from (select
l.game_id,l.title as c_title,m.title as s_title from (select * from (SELECT a.game_id, GROUP_CONCAT(b.title) as title FROM `lch_resource_attribute` AS b
,`idx_lch_resource_category` AS a WHERE (b.id = a.category_id or b.id =a.parent_id) AND b.status =1 and a.game_status = 1 group by a.game_id order by a.game_id asc) as
g) as l left join (select * from (SELECT e.game_id, GROUP_CONCAT(d.title) as title FROM `lch_resource_attribute` AS d ,`idx_lch_resource_category` AS e WHERE ((d.id =
e.category_id or d.id =e.parent_id) and level = 2) AND d.status =1 and e.game_status = 1 group by e.game_id order by e.game_id asc) as k) as m on l.game_id = m.game_id
order by l.game_id) as h) as g where k.id= g.game_id order by k.id desc;
執行的結果如下:
+-----+-----------------+----------------------+------------------+-----------+--------+---------------------+------------------------------+---------------------+
| id | name | package | company | developer | size | online_time | 主分類 | 次分類 |
+-----+-----------------+----------------------+------------------+-----------+--------+---------------------+------------------------------+---------------------+
| 374 | doufuyy3 | com.doufuyuyue5.am |
| 373 | 約3 | com.doufuyuyue3.am | [email protected] | bbbb | 3.67 | 2016-03-09 18:18:07 |動作,RPG | RPG |
| 372 | 影之刃 | com.yzr.am | [email protected] | cccc | 157.88 | 2016-01-19 10:25:37 |略 | NULL |
| 371 | 2 | com.doufu.yuyuecc.am | [email protected] | ddddd | 0.30 | 2016-03-09 10:23:26 |略,RPG | RPG |
| 370 | 帶付 | com.doufusdk.am | [email protected] | eeee | 4.59 | 2016-03-02 16:16:32 |動,遊戲 | RPG |
+-----+-----------------+----------------------+------------------+-----------+--------+---------------------+------------------------------+---------------------+
這樣就查出結果了,整個思路也就出來了。
相關推薦
mysql 複雜sql子查詢的例項
在我們的實際專案中,有時候需要寫一下資料彙總和查詢,哪麼子查詢就必不可少。 比如我現在有三張表: lch_resource_attribute,idx_lch_resource_category,lch_resource_games 那麼我現在要查詢某個應用的子分類的話,用
圖解SQL子查詢例項
1 建立示例表 先建立示例表; ------------------------- -- Create Customers table ------------------------- CREATE TABLE Customers ( cust_id cha
mysql buglist上關於SQL子查詢注入的郵件列表
[11 Aug 2016 15:38] Sinisa Milivojevic Hi! You are using rand() in both a select list and in the group list. That can create huge runtime
sql 子查詢(mysql)
子查詢:一個查詢巢狀在另一個查詢當中;又叫內部查詢。 子查詢 可以分為: 單行單列(就是一個值) 單行多列(就是有一行,這一行有很多不同列資料) 多行單列(同一列不同的資料) 多行多列(可以說就是一張表了吧) 我們先來看單行單列的子查詢: SE
sql子查詢
編寫 min style side lower any 編號 示例 操作 子查詢就是指的在一個完整的查詢語句之中,嵌套若幹個不同功能的小查詢,從而一起完成復雜查詢的一種編寫形式,為了讓讀者更加清楚子查詢的概念。子查詢返回結果子查詢可以返回的數據類型一共分為四種:單行單列:返
mysql in型子查詢陷阱
秒級 tab lai sql 一對一 語句 lec 掃描 主鍵 現在有兩個表,table1和table2,table1有1千萬數據(id 主鍵索引),table2有三條數據(uid字段 3,5,7); select * from table1 where id in
SQL 子查詢
單個 調用 不依賴 相關子查詢 date 1.2 like p s tid SQL支持在查詢中編寫查詢,或者嵌套其他查詢。最外層查詢的結果集會返回給調用者,稱為外部查詢。內部查詢的結果是提供給外部查詢使用的,也成為子查詢。 子查詢可以分為獨立子查詢和相關子查詢兩類。獨立子
MySQL教程 SQL基礎查詢
內存 tab 聯合 檢索 並不是 分組 某個字段 運算 roo 其實在數據庫最經常用的當屬查詢操作 基本語法 SELECT [ALL | DISTINCT | DISTINCTROW ] 字段列表 AS 字段別名 [FROM 表名
【沫沫金】Sql子查詢Not In 無結果原因
空值 blog mar 執行 sel ges 期望 ima 數值 背景源碼 select * from ITEM where item_id not in (select parent_item_id from ITEM ) 查詢效果 無任何匹配值。。。 原因 not in
mysql使用sql語句查詢數據庫所有表註釋已經表字段註釋
code 所有 spa tle var ati lec 復制 大於 場景: 1. 要查詢數據庫 "mammothcode" 下所有表名以及表註釋 /* 查詢數據庫 ‘mammothcode’ 所有表註釋 */ SELECT TABLE_NA
mysql 資料操作 子查詢 帶EXISTS關鍵字的子查詢
帶EXISTS關鍵字的子查詢 EXISTS關字鍵字表示存在。 EXISTS 判斷某個sql語句的有沒有查到結果 有就返回真 true 否則返回假 False 如果條件成立 返回另外一條sql語句的返回結果 返回結果了 &nb
mysql 資料操作 子查詢 帶比較運算子的子查詢
帶比較運算子的子查詢 #比較運算子:=、!=、>、>=、<、<=、<> #查詢大於所有人平均年齡的員工名與年齡思路 先拿到所有人的平均年齡然後 再用另外一條sql語句 進行比較 拿所有員工的年齡 > 所有人的平均年齡
30種mysql優化sql語句查詢的方法
30種mysql優化sql語句查詢的方法 1.對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。 2.應儘量避免在 where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進行全表掃描。 3.應儘量避
mysql update where子查詢實現方式
mysql的update的一些特點 1、更新的表不能在set和where中子查詢; 2、可以對多個表進行更新(sqlserver不行); 如:update ta a,tb b set a.Bid=b.id ,b.Aid=a.id; 3、update 後面可
sql子查詢 嵌套SELECT實用語句
exp ring union res pda als 老師 效果 存在 嵌套SELECT語句也叫子查詢,一個 SELECT 語句的查詢結果能夠作為另一個語句的輸入值。子查詢不但能夠出現在Where子句中,也能夠出現在from子句中,作為一個臨時表使用,也能夠出現在selec
zbb20181206 mysql使用sql語句查詢資料庫所有表註釋已經表字段註釋
場景: 1. 要查詢資料庫 "mammothcode" 下所有表名以及表註釋 /* 查詢資料庫 ‘mammothcode’ 所有表註釋 */ SELECT TABLE_NAME,TABLE_COMMENT FROM information_schema.TABLES WHERE table
sql子查詢 order by失效問題
一、問題描述 三表聯合查詢 按主表的時間倒敘並分頁 下面sql語句 ORDER BY失效 ,如果把 ORDER BY 放在最後 比如有20條資料 第一頁會是10 -1 第二頁是20-11 分頁不正確 查詢資料發現:在my
對於MySQL中的子查詢的理解
每天記錄一下自己的心得體會,今天寫一下MySQL中的子查詢,個人感覺子查詢的難度比之前學的查詢都比較難,可能是語句太多吧,對於初學者的難度會有一點,反正我第一次接觸的時候是崩潰的,因為·程式碼有點多,因為內容比較多,所以小弟要是有講的不到位的,希望各位在下面給出
SQL子查詢、相關子查詢
子查詢 子查詢是巢狀在其他查詢中的查詢。子查詢總是從內向外處理。 注意: 1、在使用子查詢時儘量把子查詢分解為多行並且適當進行縮排,能極大的簡化子查詢的使用。 2、不能巢狀太多的子查詢,這樣會降低效能。 3、在WHERE子句中使用子查詢,應該保證SELECT語句具有
MYSQL多表子查詢練習
CREATE TABLE emp( empno INT, ename VARCHAR(50), job VARCHAR(50), mgr INT, hiredate DATE, sal DECIMAL(7,2), comm DECIM