1

我正在尝试从 mysql 数据库中检索信息。我有以下表格:

资格(qualificationid、qualificationname、personid、status)

地址(addressid, addressline1,city,province,areacode,personid)

score(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;

这似乎适用于其他一切,但并不限制该省到西开普省。

4

2 回答 2

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;
于 2013-08-27T08:56:28.207 回答
0

您将需要定义关系。在您的示例中,系统现在不知道地址与分数或资格的关系如何。通过添加一个GROUP BY score.personidand AND score.personid = address.personidscore.personid = qualifications.personid您可能会解决您的问题。

此外,使用JOINS可能更有效,因为它基本相同。

于 2013-08-27T09:05:24.017 回答