我尝试使用MySQL连接与子查询,子查询也有连接,所以我面临问题,请友善,因为我不是不尝试就问,我尽力解决,但出现语法错误,这是因为关联名称 t1 和 t2
SELECT min(user_org.oid) as id, user_org_profiles.name from user_org
LEFT JOIN user_org_profiles ON (user_org.oid = user_org_profiles.oid) t1
INNER JOIN
(SELECT user_org_profiles.name, max(user_org.gid) as gid
FROM user_org LEFT JOIN user_org_profiles USING(oid)
WHERE user_org.gid IN (1,2]) AND active =1
group by name) t2 ON t1.name = t2.name AND t1.gid = t2.gid group by t1.name
出现此错误
1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 ']) AND active =1 group by name) ON t1.name = t2.name AND t1.gid = t2.' 附近使用的正确语法。在第 6 行
最佳答案
修复了将 user_org_profiles
别名为 t1
以及 IN
列表中的一个小拼写错误的问题。不过,这些错误与消息中报告的文本不太接近。
SELECT min(user_org.oid) as id, t1.name from user_org
LEFT JOIN user_org_profiles t1 ON (user_org.oid = t1.oid)
INNER JOIN
(SELECT user_org_profiles.name, max(user_org.gid) as gid
FROM user_org LEFT JOIN user_org_profiles USING(oid)
WHERE user_org.gid IN (1,2) AND active = 1
group by name) t2 ON t1.name = t2.name AND t1.gid = t2.gid group by t1.name
关于Mysql 连接与使用相关名称的子查询连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28613934/