powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка многие ко многим
9 сообщений из 9, страница 1 из 1
Выборка многие ко многим
    #32753263
linke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим есть четыре таблицы:
Материал(id,name_material),среда(id,name_sreda),Изделие(id,name,pole1,pole2),
Temp(id_material,id_sreda)(используется для связи многие ко многим)
Как можно выбрать все изделия у которых материал соответствует нескольким средам.
...
Рейтинг: 0 / 0
Выборка многие ко многим
    #32753269
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а где у вас вообще изделия к материалам привязано?
...
Рейтинг: 0 / 0
Выборка многие ко многим
    #32753281
linke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну в таблице изделия ещё поле id_material надо
...
Рейтинг: 0 / 0
Выборка многие ко многим
    #32753319
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делаем left join для изделия с матеpиалом и что получается join с средами. Цепляем ко всему этому group by(изделие.ид)

А в список полей - изделие.имя, count(distinct среда.ид) as skolko_tam_sred и в самый конец запроса

having skolko_tam_sred>1 (чтобы отсеить те изделия где одна среда)
...
Рейтинг: 0 / 0
Выборка многие ко многим
    #32753360
linke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хрен
и что получается join с средами

Я что-то вот этот момент не очень понял
...
Рейтинг: 0 / 0
Выборка многие ко многим
    #32753393
linke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
select `modification`.`modification`,`modification`.`DN`,count(sreda.id) as kol_sred
   from `modification`
   left JOIN `material`   ON `modification`.`material`=material.id
   left join sreda on `modification`.id_sreda=sreda.id
group by modification.id
having kol_sred> 1 
Что-то типа такого
...
Рейтинг: 0 / 0
Выборка многие ко многим
    #32753401
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
 select материал.id , count(distinct temp.id_sreda) as skolko_sred from изделие left join материал on (материал.id = изделие.material_id) , temp where  (temp.id_materiala = материал.id) group by (изделие.id) havinf skolko_sred> 0 

Писал естественно навскидку, так что может понадобиться отладка.
...
Рейтинг: 0 / 0
Выборка многие ко многим
    #32753408
linke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отладка точно понадобится:), но все равно спасибо.Суть ясна,дальше буду разбираться
...
Рейтинг: 0 / 0
Выборка многие ко многим
    #32753606
linke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос в догонку, если хочу делать where по таблице среды(например по названию среды), то выборка происходит очень долго, как быть
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка многие ко многим
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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