Mysql 在子查询中获取值
我不希望r.reguser\u id作为结果中的test列,如果我从Select语句中删除此列,则我在中遇到问题,其中bu.business\u id=r.reguser\u id并得到一个错误,返回的行数超过1行。Mysql 在子查询中获取值,mysql,sql,subquery,mysql-error-1064,Mysql,Sql,Subquery,Mysql Error 1064,我不希望r.reguser\u id作为结果中的test列,如果我从Select语句中删除此列,则我在中遇到问题,其中bu.business\u id=r.reguser\u id并得到一个错误,返回的行数超过1行。 SELECT r.reguser_name , r.reguser_id as test, (Select r.reguser_id as c, GROUP_CONCAT(i.industry_name) as Industry From reguser r inner JO
SELECT r.reguser_name , r.reguser_id as test,
(Select r.reguser_id as c, GROUP_CONCAT(i.industry_name) as Industry
From reguser r inner JOIN business_industry bu ON r.reguser_id = bu.business_id join industry i ON bu.industry_id = i.industry_id
WHERE bu.business_id = test
GROUP BY bu.business_id
) as indus
FROM reguser r
请告诉我如何解决这个问题?
多谢各位
SELECT r.reguser_name , r.reguser_id,
(Select r1.reguser_id as c, GROUP_CONCAT(i.industry_name) as Industry
From reguser r1 inner JOIN business_industry bu ON r1.reguser_id = bu.business_id join industry i ON bu.industry_id = i.industry_id
WHERE bu.business_id = r.reguser_id
GROUP BY bu.business_id
) as indus
FROM reguser r
不要对主表和子查询中的表使用相同的alliase。这真是糟糕的做法
SELECT t1.user_name FROM
(SELECT r.reguser_name as user_name, r.reguser_id as test,
(Select r.reguser_id as c, GROUP_CONCAT(i.industry_name) as Industry
From reguser r inner JOIN business_industry bu ON r.reguser_id = bu.business_id join industry i ON bu.industry_id = i.industry_id
WHERE bu.business_id = test
GROUP BY bu.business_id
) as indus
FROM reguser r)t1
WHERE t1.user_name IS NOT NULL
我认为,如果以这种方式进行查询时使用SQLDeveloper,则需要使用某种where子句,即为select查询提供别名。希望这有帮助。是的,将r改为r1解决了我的问题,非常感谢。