mysql multiple-subquery group_concat query

Я пытаюсь показать районы и почтовые индексы, в которых находится конкретный город.

Моя база данных довольно хорошо структурирована, с таблицей, такой как город, почтовый индекс и район . Существуют также таблицы для каждой из взаимосвязей town_postcode и town_borough.

В идеале я хочу, чтобы данные возвращались как:

«Abbey Wood», «SE2», «Bexley, Greenwich» м пытается показать районы и почтовые индексы конкретного города в. Моя база данных довольно хорошо структурирована, с такой таблицей, как город, почтовый индекс и район. Также есть таблицы для каждого из ...

Я пытаюсь показать районы и почтовые индексы, в которых находится конкретный город.

Моя база данных довольно хорошо структурирована, с таблицей, такой как город, почтовый индекс и район . Существуют также таблицы для каждой из взаимосвязей town_postcode и town_borough.

В идеале я хочу, чтобы данные возвращались как:

«Abbey Wood», «SE2», «Bexley, Greenwich» м пытается показать районы и почтовые индексы конкретного города в. Моя база данных довольно хорошо структурирована, с такой таблицей, как город, почтовый индекс и район. Также есть таблицы для каждого из ...

Я пытаюсь показать районы и почтовые индексы, в которых находится конкретный город.

Моя база данных довольно хорошо структурирована, с таблицей, такой как город, почтовый индекс и район . Существуют также таблицы для каждой из взаимосвязей town_postcode и town_borough.

В идеале я хочу, чтобы данные возвращались как:

«Abbey Wood», «SE2», «Bexley, Greenwich»

Моя база данных довольно хорошо структурирована, с такой таблицей, как город, почтовый индекс и район. Существуют также таблицы для каждой из взаимосвязей town_postcode и town_borough.

В идеале я хочу, чтобы данные возвращались как:

«Abbey Wood», «SE2», «Bexley, Greenwich»

Моя база данных довольно хорошо структурирована, с такой таблицей, как город, почтовый индекс и район. Существуют также таблицы для каждой из взаимосвязей town_postcode и town_borough.

В идеале я хочу, чтобы данные возвращались как:

«Abbey Wood», «SE2», «Bexley, Greenwich» «Барбакан», «EC1, EC2», «Лондонский Сити»

Я пробовал несколько разных подходов, и я близок к этому, но еще не достиг.

Любая помощь будет признательна ... :) Пока я пробовал

SELECT DISTINCT t.town, 
GROUP_CONCAT( DISTINCT p.postcode SEPARATOR ', ' ) AS 'postcode', 
GROUP_CONCAT( DISTINCT b.borough SEPARATOR ', ' ) AS 'borough'
FROM coverage_towns AS t, 
coverage_boroughs AS b, 
coverage_postcodes AS p, 
coverage_towns_boroughs AS tb, 
coverage_towns_postcodes AS tp
WHERE t.id = tp.town_id
AND p.id = tp.postcode_id
AND b.id = tb.borough_id
GROUP BY t.town
ORDER BY t.town ASC

, который возвращает

"Abbey Wood", "SE2", "Southwark, Hammersmith and Fulham, Tower Hamlets, Wandsworth, Enfield, Newham, LOTS MORE HERE"
"Barbican", "EC1, EC2", "Brent, Greenwich, Kensington and Chelsea, Westminster, Camden, LOTS MORE HERE"

. Я также пробовал

SELECT DISTINCT t.town, (

SELECT SQL_CACHE DISTINCT GROUP_CONCAT( p1.postcode
SEPARATOR ', ' )
FROM coverage_postcodes AS p1
WHERE p1.id = tp.postcode_id
) AS 'postcode', (

SELECT SQL_CACHE DISTINCT GROUP_CONCAT( b1.borough
SEPARATOR ', ' )
FROM coverage_boroughs AS b1
WHERE b1.id = tb.borough_id
) AS 'borough'
FROM coverage_towns AS t, coverage_boroughs AS b, coverage_postcodes AS p, coverage_towns_boroughs AS tb, coverage_towns_postcodes AS tp
WHERE t.id = tp.town_id
AND p.id = tp.postcode_id
AND b.id = tb.borough_id
GROUP BY t.town
ORDER BY t.town ASC

, который возвращает

"Abbey Wood", "SE2", "Greenwich"
"Acton", "W3", "Greenwich"
"Aldersbrook", "E12", "Greenwich"
1
задан user482957 21 October 2010 в 15:05
поделиться