MySQL запрос, вернуть строки где есть любое из значений другой таблицы stix2010 ,
Fedor-1971 ,
arsik ,
serpentt ,
kir-g ,
Kongo2019 ,
Лирик ,
AlexKimp ,
KJlag ,
DimR_71 ,
Мыхалыч ,
lEvGl ,
AAA ,
RVN ,
Zamestas ,
Александр111 ,
XLife ,
dmt ,
sysadminlk ,
ADirks ,
U4Me2 ,
AutoAns
☑
0
sysadminlk
29.01.25
✎
20:41
Подскажите пожалуйста как можно получить строки таблицы а где есть значения из таблицы б.
Справочник товаров - таблица `goods`
Набор характеристик - таблицы `specs`
В таблице `goods` есть товар например 'Ноутбук 8Гб DDR4'
Как его найти с помощью набора характеристик?
SELECT * FROM goods WHERE EXISTS IN (SELECT value FROM specs WHERE goods.name LIKE '%specs.value%' AND (specs.value = 'DDR4' OR specs.value = 'DDR5'))
1
sysadminlk
29.01.25
✎
20:43
В таблице характеристик там строки
DDR3
DDR4
DDR5
8Гб
и др
2
sysadminlk
29.01.25
✎
21:03
Блин. Сори.
Уже нашел как
SELECT name
FROM goods
WHERE EXISTS (
SELECT 1
FROM specs
WHERE goods.name LIKE CONCAT( '%', specs.value, '%' )
)
3
Волшебник
29.01.25
✎
21:39
Чушь
4
Greeen
29.01.25
✎
21:58
(2) да, в этом запросе вы сейчас нафиговертите непонятно чего
Соединяйте по ключевому полю (типа WHERE goods.ID = specs.ParentID, или как у вас там связаны таблицы)
5
sysadminlk
30.01.25
✎
04:56
(4) у них нет связи по ID только через LIKE %% приходится
6
AAA
30.01.25
✎
08:10
(5)Зачем тогда вообще эта таблица характеристик? По сути это просто критерии поиска того, что есть в наименовании. Или я чего то не понимаю, или таблица характеристик даром не нужна
7
stix2010
30.01.25
✎
09:46
(2) (5) Это типа характеристики указаны в наименовании товара? Зачем тогда вообще таблица specs?
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс