Я пытаюсь создать простой поиск на основе таблиц 2 MySQL
.Один из них назвал ключевые слова (слова), а другой назвал keyword2data (карта, которая связывает слова с источником данных).
Ключевые слова содержат идентификатор и ключевое слово, в то время как keys2data содержит ключевые слова_id и data_id.третья, но в данном случае неважная таблица.
Я хочу иметь возможность искать, например, "собачьи упряжки" и получать все data_id, с которыми связаны эти ключевые слова.
SELECT k2d.`data_id` , k2d.`keyword_id`
FROM keywords2data as k2d, keywords as k
WHERE k2d.`keyword_id` = k.`id`
&& (k.`keyword` = 'dog' || k.`keyword` = 'sled')
LIMIT 10
Дает мне все data_id, к которым привязана собака или сани, не обязательно оба, и это то, что я хочу.
SELECT k2d.`data_id` , k2d.`keyword_id`
FROM keywords2data as k2d, keywords as k
WHERE k2d.`keyword_id` = k.`id`
&& (k.`keyword` = 'dog' && k.`keyword` = 'sled')
LIMIT 10
Дает мне ничего, поскольку ни одна строка в keyword2data не содержит 2 ключевых слова.
Как правильно это сделать?