MySQL SELECT来自表中的多个列

时间:2013-08-27 08:46:34

标签: mysql select multiple-columns multiple-tables

我正在尝试从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;

这似乎对其他一切都有效,但不会限制省到西部海角。

2 个答案:

答案 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.personidAND score.personid = address.personid以及score.personid = qualifications.personid,您可以解决问题。

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