答:本文主要涉及MySQL多表查詢的實戰技巧,包括聯合查詢、子查詢、內連接、外連接等。
問:聯合查詢是什么?如何使用?
答:聯合查詢是將多個SELECT語句的結果集合并在一起,形成一個新的結果集。使用UNION關鍵字實現聯合查詢,UNION關鍵字前后的查詢語句必須有相同的列數、列名和數據類型。 age FROM table1
UNIOName, age FROM table2
這個查詢將返回table1和table2中所有人的姓名和年齡。
問:什么是子查詢?如何使用?
答:子查詢是在SELECT、UPDATE、DELETE語句中嵌套的SELECT語句,用于獲取一個或多個結果。子查詢可以出現在WHERE、HAVING、FROM子句中。 age FROM table1 WHERE age >(SELECT AVG(age) FROM table1)
這個查詢將返回table1中年齡大于平均年齡的人的姓名和年齡。
問:內連接和外連接有什么區別?如何使用?
答:內連接和外連接是多表查詢中常用的連接方式。內連接只返回兩個表中都存在的記錄,而外連接可以返回一個表中不存在的記錄。內連接使用JOIN關鍵字實現,外連接使用LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN關鍵字實現。 table2.salary FROM table1 JOIN table2 ON table1.id = table2.id
這個查詢將返回table1和table2中id相同的人的姓名和工資。如果使用LEFT JOIN關鍵字,則會返回table1中所有人的姓名和table2中與之對應的工資,如果沒有對應的工資,則返回NULL。