2013-08-26 105 views
0

填寫值我有一個表稱爲vacancy它看起來像這樣MySQL的其他表

enter image description here

rolecompanylocation都有有自己的表,但我想獲得一個查詢一起拉從其它表中的信息填寫vacancy

我試圖

SELECT r.title, c.company, l.town, l.country, v.term 
FROM role r, vacancy v, location l, company c 

但是,這給了我300行相同的title當我應該實際上有3行返回。

公司 Company

作用 role

位置 location

+0

可以請你分享他們的數據結構??? –

回答

2

您可以使用連接到所有四個表顯示數據

SELECT v.id, r.title, c.company, l.town, l.country, v.term 
FROM vacancy v 
JOIN location l ON (v.location = l.id) 
JOIN company c ON (v.company = c.id) 
JOIN role r ON (v.role = r.id) 
0

Beardy,MySQL顯示300行而不是3的原因是因爲它同時從三個表中返回所有數據。
考慮到角色,公司和地點都是包含上述表格的主鍵的列,您所要做的就是join
另外,考慮到您的這張表格,vacancy是您想要顯示數據的表格,這是您應該使用的查詢(將列名稱替換爲您在數據庫中實際存在的列名稱):

SELECT 
vacancy.id as '#', 
role.name as 'Role', 
company.name as 'Company', 
location.name as 'Location' 
FROM 
vacancy 
LEFT JOIN role on role.ID = vacancy.role 
LEFT JOIN company on company.ID = vacancy.company 
LEFT JOIN location on location.ID = vacancy.location 

編輯:我正要提出這個答案時Dianuj張貼了他......所以,我決定提交之前給我答覆了額外的刺激:d