Я полагаю, это более или менее тривиальная вещь, но здесь это идет ...
У меня есть несколько реляционных таблиц, и я пытаюсь получить строки в зависимости от 2 значений. Вот мой запрос до сих пор:
SELECT `inventory`.*, `tags`.*, `tags_inv`.*, `categories`.*, `categories_inv`.*
FROM (`tags`)
LEFT JOIN `tags_inv` ON `tags_inv`.`tag_id` = `tags`.`tag_id`
LEFT JOIN `inventory` ON `inventory`.`inventory_id` = `tags_inv`.`inv_id`
LEFT JOIN `categories_inv` ON `categories_inv`.`inv_id` = `inventory`.`inventory_id`
LEFT JOIN `categories` ON `categories`.`cat_id` = `categories_inv`.`cat_id`
WHERE `categories`.`cat_id` = 1
AND `inventory`.`inv_name` LIKE '%p%'
OR `inventory`.`inv_dim_w` LIKE '%p%'
OR `inventory`.`inv_dim_l` LIKE '%p%'
OR `inventory`.`inv_dim_h` LIKE '%p%'
OR `tags`.`tag_description` LIKE '%p%'
ORDER BY `inventory`.`inv_name`
Проблема в том, что мой запрос выбирает все из моей базы данных (как будто он игнорирует cat_id
), но я хотел бы выбрать только строки с cat_id
1 в этом случае ...
Есть ли быстрый и разумный способ решить эту проблему? :)
Заранее спасибо!