我正在尝试从mysql数据库中检索信息。 我有以下表格:
资格(qualidid,qualifiedname,personid,status)
地址(addressid,addressline1,city,province,areacode,personid)
得分(scoreid,score.choices,personid,jobid)
我使用键入以下mysql语句来检索数据
SELECT score.personid, qualifications.qualificationname, score.score
FROM
Qualifications, Score, Address
WHERE
score.jobid=58
AND
qualifications.qualificationName ='Human Resource Management'
AND
aadress.province ='Western Cape'
ORDER BY score.score
LIMIT 0,20;
这似乎对其他一切都有效,但不会限制省到西部海角。
答案 0 :(得分:2)
为什么不使用连接?像这样:
SELECT s.personid, q.qualificationname, s.score
FROM Score s
INNER JOIN Qualifications q ON q.personid = s.personid AND q.qualificationName ='Human Resource Management'
INNER JOIN Address a ON a.personid = s.personid AND a.province ='Western Cape'
WHERE s.jobid = 58
ORDER BY s.score DESC
LIMIT 0,20;
答案 1 :(得分:0)
您需要定义关系。系统现在不知道地址如何与示例中的分数或资格相关。通过添加GROUP BY score.personid
和AND score.personid = address.personid
以及score.personid = qualifications.personid
,您可以解决问题。
此外,使用JOINS
可能更有效,因为它基本相同。