mysql联接语法错误

ibps3vxo  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(398)

我有两张table,一张是 setting 一个是
accounts setting 包含以下列:isverified、custommessage、user accounts 包含以下列:id、全名、密码、地址、电话
我知道我必须做 join 但我怎样才能得到 fullName 从帐户表?
是我干的

SELECT isVerified, customMessage, fullName
FROM setting FULL OUTER JOIN
     accounts
     ON setting.user = accounts.id;

但在附近出错了 JOIN . 怎么了?

68bkxrlz

68bkxrlz1#

一个内部连接就足够了:

SELECT s.isVerified, s.customMessage, a.fullName
FROM setting s INNER JOIN
     accounts a 
     ON s.user = a.id;

mysql不支持 FULL OUTER JOIN . 想必,所有帐户都有设置,反之亦然。
注意,我引入了表别名,因此查询更易于编写和读取。在这个查询中,所有列名都指定它们来自的表。

c7rzv4ha

c7rzv4ha2#

我知道我必须加入,但如何从accounts表中获得唯一的全名?
如果只需要全名,请在select语句中指定全名列。
从…中选择全名。。。。
正如其他人指出的,mysql不支持完全的外部连接,所以将其改为gordonlinoff上面提到的简单连接。
通常,在执行联接时,要么需要与两个表匹配的行(在本例中是设置和帐户)。根据您描述的列,并根据您设计模式的方式,两个表之间可能是一对一关系,也可能是一对多关系。您的案例听起来像是一对一,因为每个用户帐户都有一个设置。
你是在s.user=a.id上加入的,但我看不出你提到的s.user实际上和a.id是一样的?什么是用户字段?如果它实际上是一个id,那么您可能需要将其更好地命名为s.id。正如其他人所指出的,请包含实际的表定义,以便更容易找出运行查询时出现sql错误的原因。
祝你好运。

相关问题