Я пытаюсь собрать запрос MySQL, который связывает 3 таблицы вместе. По сути, таблицы таковы:
- продукты - содержит информацию о продукте и основные цены.
- product_depts - таблица привязки продуктов к различным отделам.
- акции - Другая таблица ссылок, ссылки на периоды продвижения и цены на основе идентификатора продукта.
Это запрос:
SELECT p.id, `desc` , price1, price2, cost1, taxable, quantity, deptId, sale
FROM products p
INNER JOIN product_depts ON p.id = prodId
INNER JOIN promotions s ON p.id = s.id
WHERE MATCH (
`desc`
)
AGAINST (
'CLOVER'
IN BOOLEAN
MODE
)
ORDER BY `desc`
LIMIT 0 , 30
Если убрана следующая строка:
INNER JOIN promotions s ON p.id = s.id
И sale
извлечены из предложения select,
Что происходит, возвращаются ли ВСЕ продукты с описанием, содержащим "CLOVER", в таблице продуктов.
При добавлении удаленных частей запроса возвращаются только те элементы, которые находятся в продвижении (с соответствующим идентификатором в таблице продвижений). И любые дополнительные продукты, содержащие "CLOVER" в таблице products
, которые не находятся "в продвижении", не учитываются.
Поскольку у меня очень ограниченные знания в области mysql, я подумал, что, возможно, кто-то, у кого есть обширные знания по этому вопросу, хотел бы поделиться ...
Хотя, насколько я понимаю, это по сути то же самое, что и вызов deptId
из таблицы product_depts
, который работает отлично. Так что это меня смущает.
Что я делаю не так, что отображаются только те элементы, которые «продвигаются», а дополнительные результаты не отображаются?
Спасибо!