連接查詢
連接是把不同表的記錄連到一起的最普遍的方法。一種錯誤的觀念認爲由於MySQL的簡單性和源代碼開放性,使它不擅長連接。這種觀念是錯誤的。MySQL從一開始就能夠很好地支持連接,現在還以支持標準的SQL2連接語句而自誇,這種連接語句可以以多種高級方法來組合表記錄。
內連接查詢
內連接是最普遍的連接類型,而且是最勻稱的,因爲它們要求構成連接的每一部分的每個表的匹配,不匹配的行將被排除。
例子:
SELECT * FROM user_fuelcard WHERE user_id = (SELECT row_id
FROM md_user WHERE phone = '13782843517')
查詢結果:
外連接查詢
與內連接不同,外連接是指使用OUTER JOIN關鍵字將兩個表連接起來。外連接生成的結果集不僅包含符合連接條件的行數據,而且還包括左表(左外連接時的表)、右表(右外連接時的表)或兩邊連接表(全外連接時的表)中所有的數據行。
例子:
SELECT phone 電話號碼, ua.balance 賬戶餘額 FROM md_user mu
JOIN user_account ua ON ua.user_id = mu.row_id WHERE mu.row_id IN (
SELECT user_id FROM user_account WHERE ua.balance >= 100 );
查詢結果:
複合條件連接查詢
在連接查詢時,也可以增加其他的限制條件。通過多個條件的複合查詢,可以使查詢結果更加準確。
例子:
SELECT * FROM user_account ua, md_user mu
WHERE ua.user_id = mu.row_id AND ua.balance >= 1000000;
查詢結果: