聯接與並集
聯接: 基於公用列組合兩個表中的行,僅傳回符合的行。 (有關更多信息,請參閱維基百科)
並集: 組合多個查詢的結果,但刪除重複的行。
SELECT c.ID, m.model FROM cars c INNER JOIN models m ON c.model = m.ID
左外連接: 包括左表中的所有行以及右表中的匹配行,但忽略右表中不匹配的行表。
SELECT c.ID, m.model FROM cars c INNER JOIN models m ON c.model = m.ID WHERE m.ID = 1 UNION SELECT c.ID, m.model FROM cars c INNER JOIN models m ON c.model = m.ID WHERE m.ID = 3右外連接:
包含右表中的所有行和左表中的符合行,但忽略左表中不符合的行。
Intersect:SELECT b.brand, COUNT(c.id) AS countOfBrand FROM brands b LEFT OUTER JOIN cars c ON b.ID = c.brand GROUP BY b.brand僅傳回多個表中相同的行。 (並非所有資料庫都支援)
範例
SELECT m.model, c.color FROM models m INNER JOIN colors c ON m.ID = c.ID WHERE m.model = 'Sports' AND c.color = 'Red'內連接:從「汽車」和「模型」擷取資料表:並集:合併兩個查詢的結果以獲得所有跑車和4WD:左外連接: 尋找所有品牌及其汽車數量,包括沒有任何品牌的品牌cars:相交:僅檢索「顏色」和「型號」表中相同的行:
以上是如何使用 SQL 連接和聯合有效地從多個表中檢索資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!