在實際的開發中,我們可能需要通過多個查詢來獲取所需的數據。然而,這樣的數據往往是分散的,需要通過一些手段合并才能呈現給用戶,而Oracle數據庫提供了多種方法來實現這樣的需求。
假設我們有兩個表,一個記錄學生姓名和年齡,另一個記錄學生所學課程和成績:
CREATE TABLE student( name VARCHAR2(20), age NUMBER(3) ); CREATE TABLE course( name VARCHAR2(20), score NUMBER(3) );
現在我們想要查詢學生的姓名、年齡和所學課程的平均成績,可以通過下面的SQL語句實現:
SELECT student.name, student.age, AVG(course.score) AS avg_score FROM student LEFT JOIN course ON student.name = course.name GROUP BY student.name, student.age;
其中LEFT JOIN關鍵字表示左連接,即會返回所有的學生記錄,而不只是同時存在于兩個表中的學生記錄。AVG函數計算每位學生所學課程的平均成績,GROUP BY語句將結果按照學生姓名和年齡分組。
另一種常用的合并查詢結果的方法是使用UNION操作符。假設我們有兩個表,一個記錄中國城市的名稱,另一個記錄美國城市的名稱:
CREATE TABLE china_city( name VARCHAR2(20) ); CREATE TABLE us_city( name VARCHAR2(20) );
現在我們想要查詢中國和美國所有城市的名稱,可以通過下面的SQL語句實現:
SELECT name FROM china_city UNION SELECT name FROM us_city;
UNION操作符將兩個查詢的結果集合并成一個。需要注意的是,如果兩個查詢的結果集有相同的記錄,UNION操作符會去除其中一個。
當然,這里只是介紹了兩種常用的查詢結果合并方法,實際開發中還會有更多的方法。在選擇方法時需要根據具體的需求和業務邏輯進行權衡。
上一篇php motan