У меня есть две таблицы Товары и Элементы .
каждая продукт содержит элементы отношения по product_id
Товары таблица:
| id | name |
|---- |----------- |
| 1 | Product 1 |
| 2 | Product 2 |
Элементы таблица:
| id | product_id | name |
|---- |------------ |-------- |
| 1 | 1 | Item 1 |
| 2 | 2 | Item 2 |
Итак, у меня есть возможность поиска по таблице Products :
SELECT * FROM products WHERE name LIKE '%product 1%'
То, что я пытаюсь достичь, - это возможность поиска также в таблице Items , если есть соответствующий элемент, возвращает его родительский Product .
Итак, если я ищу Item 1 , и он связан с Product 1 через product_id
, тогда верну Product 1
Я пробовал:
(SELECT * FROM products WHERE name LIKE '%product 1%') UNION (SELECT * FROM items WHERE name LIKE '%item 1%')
Когда поисковые ключевые слова совпадают с Product 1
, он возвращает продукт, но если поисковые ключевые слова Item 1
, он возвращает item
, а не product
, и я хочу во всех случаях возвращать только products
.
Как я могу этого добиться?
Спасибо