2011-11-03 46 views
0

選擇查詢我有兩個表這樣如何寫這個

job(id,title,location,...) 

job_page(id,id_job,id_page,page_name) 

比如我想寫一個選擇查詢,以填補一個表下列:

+_______+________+__________+_______+ 
|Job Id | Titlte | Location | Page | 
+_______+________+__________+_______+ 
|1  | Hot job| Somewhere| Page1 | 
|  |  |   | Page2 | 
+_______+________+__________+_______+ 

哪有我爲此寫了一個選擇查詢?

我試過,但它並不如我所料:

SELECT jp.page_name,j.* FROM jobs j 
LEFT JOIN job_pages jp ON jp.id_job = j.id 
GROUP BY j.id; 

回答

1

您需要使用group_concat

SELECT j.id, j.title, j.location, group_concat(jp.page_name) 
FROM jobs j LEFT JOIN job_pages jp ON jp.id_job = j.id 
GROUP BY j.id, j.title, j.location; 

在MySQL中,你可以縮寫GROUP BY:

SELECT j.id, j.title, j.location, group_concat(jp.page_name) 
FROM jobs j LEFT JOIN job_pages jp ON jp.id_job = j.id 
GROUP BY j.id; 

但是這真的會讓我這樣的多數據庫用戶感到不適。

1

如果我理解正確,你想把所有的「頁」放到一個單元格中。我猜你唯一缺少的是j.page_name上的GROUP_CONCAT。如果是網絡或其他東西,你也可以使用SEPARATOR子句設置爲< br/>什麼的。