Как написать запрос на выборку для этого - PullRequest
0 голосов
/ 03 ноября 2011

У меня есть две таблицы, подобные этой

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;

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Если я вас правильно понимаю, вы бы хотели поместить все «страницы» в одну ячейку.Я думаю, единственное, чего вам не хватает, это GROUP_CONCAT на j.page_name.Если это для сети или что-то, вы также можете использовать предложение SEPARATOR, установленное вили что-то.

1 голос
/ 03 ноября 2011

Вам нужно использовать 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;

но это действительно приводит к ошибкам пользователей с несколькими базами данных, таких как я.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...