MySQL高階查詢筆記
SELECT 獨立欄位名,COUNT(*) FROM 表名 GROUP BY 獨立欄位名; 注意:分組查詢的結果集中只能包含兩種列 (1)分組條件列 (2)其他列的聚合函式 2.複雜查詢---子查詢 步驟1:到表中查詢出對於的編號 SELECT 欄位名 FROM 表名 WHERE 欄位名=引數 步驟2:到另外一個表中查詢對應編號資訊 SELECT * FROM 表名 WHERE 欄位名=引數 組合語句: SELECT * FROM 表名 WHERE 欄位名=(SELECT 欄位名 FROM 表名 WHERE 欄位名=引數); 3.複雜查詢----跨表/多表查詢 SELECT 表1欄位,表2欄位 FROM 表1,表2 WHERE 表1.表1欄位=表2.表2欄位;#跨表查詢必須防止“笛卡爾積” 注意:上述語法是SQL-92標準中的跨表查詢語法。缺陷某個中的記錄在對方表中無對應項, 則總結果無法顯示這樣的記錄,如一個欄位為NULL的內容,沒有的資料都無法顯示 SQL-99中的跨表查詢語法分為四種: (1)內連結查詢INNER JOIN 查詢結果與SQL-92標準一樣 SELECT 表1欄位,表2欄位 FROM 表1 INNER JOIN 表2 ON 表1欄位=表2欄位 #兩個表的拼接條件用on宣告 (2)左連線查詢LEFT [OUTER] JOIN SELECT 表1欄位,表2欄位 FROM 表1 LEFT [OUTER] JOIN 表2 ON 表1欄位=表2欄位;#顯示“左側”表中的所有記錄 (3)右連線查詢RIGHT OUTER JOIN SELECT 表1欄位,表2欄位 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 表1欄位=表2欄位;#顯示“右側”表中的所有記錄 (4)全連線查詢FULL JOIN 注意:MySQL不支援全連線 MySQL中解決“不支援全連線”的方法---結果集的合併: (SELECT 欄位名 FROM 表名) UNION (SELECT 欄位名 FROM 表名)#河濱相同的記錄 ---------------------------------------------------- (SELECT 欄位名 FROM 表名) UNION All (SELECT 欄位名 FROM 表名)#布濱相同的記錄