Mysql 为什么条件是错误的?

Mysql 为什么条件是错误的?,mysql,sql,Mysql,Sql,我尝试对两个表使用左联接。第一个表有主键,第二个表没有主键 我在简单命令中使用常见的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,'Fra

我尝试对两个表使用左联接。第一个表有主键,第二个表没有主键

我在简单命令中使用常见的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

我希望看到空的记录。但我只看到了条件匹配的记录:

正确左连接语法

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

当您选择右连接为“左连接、右连接等…”

您应该按照以下方式编写查询

选择*从名称左侧加入NAMES.pk=CITIES.fk上的城市


在@honeybacker Tnanks上,将
的位置
更改为
!它起作用了