欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql左聯接一對多

洪振霞1年前9瀏覽0評論

在mysql中,左聯接是一種常見的關聯查詢,它主要用于查詢兩張表之間存在一對多關系的數據。左聯接的語法如下:

SELECT 
a.column1, 
b.column2 
FROM 
table1 AS a 
LEFT JOIN 
table2 AS b 
ON 
a.common_column = b.common_column;

其中,table1和table2為待關聯的兩張表,common_column是它們之間的共同列。

左聯接查詢的結果集包含兩張表中的所有數據,如果某個數據在table1中有但table2中沒有,它在結果集中的對應列則顯示NULL。例如,假設我們有以下兩張表:

CREATE TABLE `students` (
`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(50) NOT NULL,
`age` INT(3) NOT NULL,
`gender` VARCHAR(10) NOT NULL
) ENGINE=InnoDB CHARSET=utf8mb4;
CREATE TABLE `courses` (
`id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`course_name` VARCHAR(50) NOT NULL,
`student_id` INT NOT NULL,
CONSTRAINT `fk_student_id` FOREIGN KEY (`student_id`) REFERENCES `students`(`id`)
) ENGINE=InnoDB CHARSET=utf8mb4;

其中,students表記錄了學生的基本信息,courses表記錄了學生選修的課程,由于一個學生可以選修多門課程,因此courses表與students表之間存在一對多的關聯關系。

現在我們要查詢所有學生及其所選課程的信息,可以使用以下SQL語句:

SELECT 
s.name, 
c.course_name 
FROM 
students AS s 
LEFT JOIN 
courses AS c 
ON 
s.id = c.student_id;

執行以上查詢語句,可以得到以下結果:

+--------+------------------+
| name   | course_name      |
+--------+------------------+
| Alice  | Math             |
| Alice  | English          |
| Bob    | Science          |
| Bob    | History          |
| Bob    | Literature       |
| Cindy  | Math             |
| Cindy  | Science          |
+--------+------------------+

可以看到,結果集中包含了所有學生的信息,以及每個學生所選的所有課程。如果某個學生沒有選課,它在結果集中的對應列則顯示NULL。

總之,左聯接是一種非常有用的關聯查詢方式,在查詢兩張表之間存在一對多關系的數據時特別實用。