我有以下查询
SET @CompanyId = "2030";
SELECT DISTINCT (NAME)
FROM i18ninterviewmodel
WHERE LocaleId='1'
AND InterviewModelId IN (
SELECT Id
FROM interviewmodel
WHERE TYPE IN ('ABC','123')
AND Id IN (
SELECT InterviewModelId
FROM companyinterview
WHERE STATUS='ACTV'
AND CompanyId=@CompanyId
)
)
ORDER BY NAME ASC;
我想使用 JOINS 重写它,但遇到了问题。当我使用下面的内容时,我不断收到错误消息
Unknown column 'companyinterview.Status' in 'where clause'
SET @CompanyId = "2030";
SELECT i18ninterviewmodel.Name
FROM i18ninterviewmodel
JOIN i18ninterviewmodel i18
ON interviewmodel.Id = i18.InterviewModelId
JOIN interviewmodel
ON companyinterview.InterviewModelId = interviewmodel.Id
WHERE i18ninterviewmodel.LocaleId='1'
AND companyinterview.Status='ACTV'
AND companyinterview.CompanyId=@CompanyId
AND interviewmodel.type IN ('ABC','123')
ORDER BY i18ninterviewmodel.Name ASC;
我对 MySQL 没有太多经验,所以我不确定问题出在哪里。
最佳答案
我看不到您在任何时候加入 companyinterview
表的位置。
我猜你想写这个:
SET @CompanyId = "2030";
SELECT i18ninterviewmodel.Name FROM i18ninterviewmodel
JOIN i18ninterviewmodel i18 ON interviewmodel.Id = i18.InterviewModelId
JOIN companyinterview ON companyinterview.InterviewModelId = interviewmodel.Id
WHERE i18ninterviewmodel.LocaleId='1' AND companyinterview.Status='ACTV' AND companyinterview.CompanyId=@CompanyId AND interviewmodel.type IN ('ABC','123') ORDER BY i18ninterviewmodel.Name AS
关于mysql - MySQL 查询中的未知列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47060241/