什么是1對多查詢?
1對多查詢指的是在MySQL數據庫中,一個表中的一條數據可以關聯到另一個表中的多條數據。例如,一個訂單對應多個商品,這時我們就需要使用1對多查詢操作。
如何進行1對多查詢聯表?
通常我們使用JOIN語句來實現1對多查詢聯表。JOIN語句可分為INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN四種。其中INNER JOIN是最常用的聯表方式,它返回兩個表中匹配的行。
INNER JOIN聯表示例
以學生和成績表為例,學生表中有學生ID和姓名,成績表中有學生ID和成績,現在我們需要查詢學生及其所有成績:
SELECT student.name, score.score FROM student INNER JOIN score ON student.ID = score.studentID;
這里使用INNER JOIN語句將學生表和成績表關聯,通過student.ID和score.studentID進行匹配,最終返回學生姓名和成績。
LEFT JOIN聯表示例
LEFT JOIN語句會返回左表中所有的記錄,而不僅僅是匹配的記錄。
SELECT project.name, employee.name FROM project LEFT JOIN employee ON project.managerID = employee.ID;
這里使用LEFT JOIN語句將項目表和員工表關聯,通過project.managerID和employee.ID進行匹配。由于LEFT JOIN語句會返回左表中所有的記錄,故即使員工表中沒有某個項目的負責人信息,關聯后也會返回該項目的信息。
總結
在MySQL數據庫中,1對多查詢是很常見的操作,通過JOIN語句可以實現多個表的聯結查詢,常用的聯表方式有INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN四種。