У меня три таблицы категория , бренд , товар .
Таблица категорий -
+---------------+--------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| category_name | varchar(255) | NO | | NULL | |
| category_UID | varchar(255) | NO | UNI | NULL | |
| date | date | YES | | NULL | |
| time | time | YES | | NULL | |
| is_delete | tinyint(1) | YES | | 0 | |
+---------------+--------------+------+-----+---------+----------------+
Таблица брендов -
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| brand_name | varchar(255) | NO | | NULL | |
| brand_UID | varchar(255) | NO | UNI | NULL | |
| fk_id | varchar(255) | NO | | NULL | |
| date | date | NO | | NULL | |
| time | time | NO | | NULL | |
| is_delete | tinyint(1) | YES | | 0 | |
+------------+--------------+------+-----+---------+----------------+
Товары -
+-----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| category_UID | varchar(255) | NO | | NULL | |
| brand_UID | varchar(255) | NO | | NULL | |
| product_name | varchar(255) | NO | | NULL | |
| product_UID | varchar(255) | NO | UNI | NULL | |
| keyword | varchar(255) | YES | | NULL | |
| photo | varchar(255) | NO | | NULL | |
| photo_thumbnail | varchar(255) | YES | | NULL | |
| date | date | NO | | NULL | |
| time | time | NO | | NULL | |
| is_delete | tinyint(1) | YES | | 0 | |
| visible | tinyint(1) | YES | | 1 | |
+-----------------+--------------+------+-----+---------+----------------+
На странице HTML есть ввод типа поиска, в котором пользователь вводит не менее трех символов, чтобы получить результат поиска из БД.
Каким будет метод поиска -
Я хочу найти продукты и получить все их данные.
Строка поиска будет найдена по product_name или ключевым словам из таблицы продуктов. Если строка поиска не найдена в таблице продуктов, строку поиска можно найти по category_name
или brand_name
из таблицы категорий или таблицы брендов соответственно. Теперь, если мы получили наш поиск, то в таблице продуктов должен присутствовать category_UID . (Это означает, что мы получим наш поиск только тогда, когда UID этой категории сохранен в таблице продуктов)
Я хочу получить вывод как -
Если поиск успешен, мы должны получить все данные столбца из таблица продуктов, включая еще два столбца category_name
, brand_name
из таблицы категорий и таблицы брендов соответственно.
Примечание:
только один атрибут category_UID
является общим во всех трех таблицах. Итак, как я могу получить поиск продукта?
Можно ли решить эту проблему с помощью JOIN или UNION , иначе я должен использовать процедурный способ.