Mysql Выборка данных - PullRequest
       3

Mysql Выборка данных

0 голосов
/ 02 декабря 2011

У меня есть таблица: tbl_offer (имя_ предложения, местоположение).Для конкретного предложения у меня есть несколько местоположений в столбце местоположений, разделенных запятыми.

Пример:

Если предложение offer1, тогда у меня Bangalore, Mumbai, Chennaiв столбце местоположения.

Теперь нужно написать запрос, который будет извлекать каждое местоположение отдельно (которые разделены запятыми для конкретного предложения).Я хочу выбрать offer1, который должен извлекать Bangalore Mumbai and Chennai в отдельных записях.

1 Ответ

1 голос
/ 02 декабря 2011

Как сказал @Cylindric, если вы можете изменить дизайн базы данных!
Создайте две таблицы, одну для предложений и одну для местоположения.

OFFERS    (id, name)
LOCATIONS (offer_id, name)

Так (например) у вас есть (1, 'offer1') в ПРЕДЛОЖЕНИЯХ и
(1, 'Bangalore'), (1, 'Mumbai') and (1, 'Chennai') в местах.

Ваш запрос будет проще:

SELECT o.name, l.name FROM offers o
INNER JOIN locations l ON o.id = l.offer_id

Если честно, у вас должно быть три таблицы, чтобы избежать повторений локаций:

OFFERS     (id, name)
LOCATIONS  (id, name)
OFFERS_LOC (offer_id, loc_id)

У вас есть
(1, 'offer1') в ПРЕДЛОЖЕНИЯХ,
(1, 'Bangalore'), (2, 'Mumbai') and (3, 'Chennai') в местах и ​​
(1, 1), (1, 2) and (1, 3) в OFFERS_LOC.

Ваш запрос будет

SELECT o.name, l.name FROM offers o
INNER JOIN offers_loc ol ON o.id = ol.offer_id
INNER JOIN locations l ON ol.loc_id = l.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...