我尝试对2个表使用左连接。第一个表具有主键,第二个表没有主键
我通过简单的命令使用常见的sql语法。
CREATE TABLE NAMES(pk integer PRIMARY KEY, Name text);
CREATE TABLE CITIES(fk integer, Name text);
INSERT INTO NAMES VALUES(1,'Tom');
INSERT INTO NAMES VALUES(2,'Lucy');
INSERT INTO NAMES VALUES(3,'Frank');
INSERT INTO CITIES VALUES(1,'Moscow');
INSERT INTO CITIES VALUES(3,'Saransk');
INSERT INTO CITIES VALUES(4,'Penza');
INSERT INTO CITIES VALUES(1,'Samara');
SELECT * FROM NAMES LEFT JOIN CITIES WHERE NAMES.pk = CITIES.fk
我希望看到带有NULL的记录。但是我只看到符合条件的记录:https://rextester.com/FXMPF52805
最佳答案
正确的左连接语法
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
因此您应该将
WHERE
更改为ON
SELECT * FROM NAMES LEFT JOIN CITIES ON NAMES.pk = CITIES.fk
关于mysql - 为什么条件不对?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55378928/