CREATE TABLE `facebook` ( `name` varchar(45) NOT NULL, `city` varchar(45) DEFAULT NULL, PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; CREATE TABLE `linkedin` ( `name` varchar(45) NOT NULL, `city` varchar(45) DEFAULT NULL, PRIMARY KEY (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Với dữ liệu thế này:
Bảng facebook:
Bảng linkedin:
Thì câu truy vấn join where này:
SELECT * FROM facebook LEFT JOIN linkedin ON facebook.name = linkedin.name WHERE facebook.city = 'SF';
Lại cho kết quả là:
Trong khi sử dụng join and:
SELECT * FROM facebook LEFT JOIN linkedin ON facebook.name = linkedin.name AND facebook.city = 'SF';
Lại cho kết quả là:
Vì sao vậy?