Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / связующая таблица, выборка записей / 6 сообщений из 6, страница 1 из 1
03.10.2013, 23:29:57
    #38416216
Pedro Garciya Lopez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связующая таблица, выборка записей
Ребята, помогите!
есть две таблицы:

МАГАЗИНЫ
store_id store_name 1маг12маг23маг3

ГОРОДА
city_id city_name 1Житомер2Пенза3Воронеж4Новокузнецк

есть связующая таблица:
store_id city_id 11132422213234

получается что Магазин1 есть в Житомере и Воронеже, Магазин2 есть в Новокузнецке, Пензе и Житомере и т.д.
допустим я хочу получить все магазины которые есть в Пензе, как сделать такой запрос?
...
Рейтинг: 0 / 0
04.10.2013, 07:50:04
    #38416290
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связующая таблица, выборка записей
Pedro Garciya Lopez,

join + join + where

хотите подробнее - пишите, как пробовали и что не получается
...
Рейтинг: 0 / 0
04.10.2013, 11:21:34
    #38416513
hallabud
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связующая таблица, выборка записей
Странно вообще, как один и тот же магазин может быть в разных городах одновременно?
...
Рейтинг: 0 / 0
04.10.2013, 13:07:37
    #38416727
Pedro Garciya Lopez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связующая таблица, выборка записей
tanglir,

у меня получилось вот так:
Код: sql
1.
SELECT stores.store_name, cities.city_name FROM stores, storescities, cities WHERE stores.store_id = storescities.store_id AND storescities.city_id = cities.city_id AND cities.city_id=2;



и с JOIN тоже получилось:
Код: sql
1.
SELECT stores.store_name, cities.city_name FROM stores JOIN storescities JOIN cities WHERE stores.store_id = storescities.store_id AND storescities.city_id = cities.city_id AND cities.city_id=2;



но без JOIN даже короче, может я просто не понимаю разницу??
...
Рейтинг: 0 / 0
04.10.2013, 13:49:12
    #38416826
Pedro Garciya Lopez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связующая таблица, выборка записей
tanglir,

и еще такой же результат возвращает такой запрос:
Код: sql
1.
SELECT stores.store_name, cities.city_name FROM stores JOIN storescities USING(store_id) JOIN cities USING(city_id) WHERE cities.city_id=2;


он получается самый лаконичный, но какой лучше? ))
...
Рейтинг: 0 / 0
04.10.2013, 15:52:46
    #38417018
hallabud
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
связующая таблица, выборка записей
Pedro Garciya Lopezно какой лучше? ))

Лучше общепринятый вариант соединений с использованием ON
Код: sql
1.
2.
3.
4.
5.
SELECT s.store_name, c.city_name 
FROM stores s 
 JOIN storescities sc ON s.store_id = sc.store_id
 JOIN cities c ON sc.city_id = c.city_id
WHERE c.city_name = 'Пенза';
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / связующая таблица, выборка записей / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]