Связь один ко многим и поиск

Warabey

Новичок
Доброго времени суток. Помогите с вопросом. Собственно вопрос.

Есть таблица Table_1 и PrimaryKey ID

И Table_2 с полями param_name и ID комбинация которых уникальна

Нужно реализовать поиск по нескольким param_name, в результате получить ID которым будут соответствовать все указанные param_name.

Модель БД в процессе разработки поэтому все предложения по изменению её структуры для упрощения поиска и дальнейшей роботы с ней более чем актуальны

Безымянный.png
 

tz-lom

Продвинутый новичок
Warabey
это нихрена не наглядный пример,наглядный пример это запрос которым создаётся база или картинка на которой можно прочесть текст
по поводу вашего вопроса - используйте JOIN и проиндексируйте 2ю таблицу
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Warabey
И это, нормальное название идентификатора для категорий во второй таблице дай.
Сам же потом плеваццо будешь
 

Warabey

Новичок
Я его изначально прикреплять не хотел... знал - без внимания не останется.

Итак запрос создания таблицы_1 :

CREATE TABLE `services_sto` (
`sto_id` INT(11) NOT NULL AUTO_INCREMENT,
`sto_vip` INT(11) NULL DEFAULT NULL,
`sto_name` CHAR(255) NULL DEFAULT NULL COLLATE 'utf8_unicode_ci',
`x` FLOAT NULL DEFAULT NULL,
`y` FLOAT NULL DEFAULT NULL,
..................................................
PRIMARY KEY (`sto_id`)
)

Таблица_2:

CREATE TABLE `services_list` (
`sto_id` INT(11) NOT NULL,
`service_name` CHAR(255) NOT NULL,
PRIMARY KEY (`sto_id`, `service_name`)
)

Пример второй таблици
-- 1 -- Покраска ---
-- 1 -- Балансировка --
-- 1 -- Ремонт ходовой --
-- 2 -- Покраска ---
-- 2 -- Балансировка --

И вот собственно нужно написать запрос параметрами которого будут service_name (например Балансировка и Ремонт ходовой), а результат выполнения ID=1
 

tz-lom

Продвинутый новичок
ну и что сложного,перечисляешь условия на параметры через OR , делаешь JOIN между services_sto и services_list и вуаля,данные у тебя
да,и ты развесил первичный ключ на sto_id , service_name , незнаю зачем тебе такое может понадобиться ,я имел ввиду индекс просто по sto_id потому что связывание у тебя будет именно через это поле
 

Warabey

Новичок
Перечисляя параметры через OR (нужно именно И Балансировка И Ремонт ходовой И еще их может быть штук 30-40) я получу грубо говоря всю таблицу а нужны записи которые удовлетворяют условию OR и, что самое важное имеют общий айди, который и необходимо получить.

И все больше кажется мне, что изначально что-то было сделано криво...
 
Сверху