我的输入只是userid。如何合并三个表以获得区域名称。我确信我的语法是正确的
表名:userinfo userid主键
表名:userinfo\u attarea employee\u id foreign key userid reference userinfo area\u id foreign key area\u id reference personnel area
表名称:人员区域\u id主键区域名称
我试过但失败了,
SELECT areaname FROM userinfo a
INNER JOIN (SELECT *FROM userinfo_attarea b
INNER JOIN SELECT *FROM personnel_area c
ON b.areaid = c.areaid
) b ON a.userid = b.employee_id;
4条答案
按热度按时间slwdgvem1#
你的语法不正确。你在句子中不必要地使用括号
FROM
条款。子查询不使用括号。子查询是完全不必要的。此外,表别名的选择很差(随机字母而不是表缩写),而且表名没有限定。
eoigrqb62#
正确的语法是:
这个
SLELECT * FROM
第三行是不必要的。另外,我强烈建议正确的缩进和空格的正确使用:)(
* FROM
而不是*FROM
). 它将提高代码的清晰度。此外,还需要注意列名,因为有时它们可能模棱两可,所以应该在内部查询中显式列出它们,并为它们提供唯一的别名。
qaxu7uf23#
我想你这个问题会对你有帮助的
bpsygsoo4#
选择b.areaname from userinfo a inner join(选择c.areaname from(选择from userinfo\u attarea)b inner join(选择from personnel\u area)c on b.areaid=c.areaid)b on a.userid=b.employee\u id;