簡體   English   中英

從表的多列中進行MySQL SELECT

[英]MySQL SELECT from multiple columns from tables

我正在嘗試從mysql數據庫中檢索信息。 我有以下表格:

資格(qualificationid,qualificationname,personid,status)

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

得分(比分,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;

這似乎對其他所有方面都奏效,但並不限制該省為西開普省。

為什么不使用聯接? 像這樣:

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;

您將需要定義關系。 在您的示例中,系統現在不知道地址與分數或資格的關系。 通過添加GROUP BY score.personidAND score.personid = address.personidscore.personid = qualifications.personid您可以解決問題。

另外,使用JOINS可能會更高效,因為它的作用基本相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM