我有两张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
. 怎么了?
2条答案
按热度按时间68bkxrlz1#
一个内部连接就足够了:
mysql不支持
FULL OUTER JOIN
. 想必,所有帐户都有设置,反之亦然。注意,我引入了表别名,因此查询更易于编写和读取。在这个查询中,所有列名都指定它们来自的表。
c7rzv4ha2#
我知道我必须加入,但如何从accounts表中获得唯一的全名?
如果只需要全名,请在select语句中指定全名列。
从…中选择全名。。。。
正如其他人指出的,mysql不支持完全的外部连接,所以将其改为gordonlinoff上面提到的简单连接。
通常,在执行联接时,要么需要与两个表匹配的行(在本例中是设置和帐户)。根据您描述的列,并根据您设计模式的方式,两个表之间可能是一对一关系,也可能是一对多关系。您的案例听起来像是一对一,因为每个用户帐户都有一个设置。
你是在s.user=a.id上加入的,但我看不出你提到的s.user实际上和a.id是一样的?什么是用户字段?如果它实际上是一个id,那么您可能需要将其更好地命名为s.id。正如其他人所指出的,请包含实际的表定义,以便更容易找出运行查询时出现sql错误的原因。
祝你好运。