#mysql #sql
#mysql #sql
Вопрос:
у меня есть 2 таблицы.
1.home_shop
--- ------------
|id | product |
--- ------------
| 1 | soap |
| 2 | cake |
| 3 | biscuit |
--- ------------
2.office_shop
--- ------------
|id | product |
--- ------------
| 1 | key |
| 2 | lock |
| 3 | pen |
--- ------------
я хочу объединить эти две таблицы в новую таблицу «complete_shop» с флагом, указывающим «home» и «office»
например:
--- ------------ -------------
|id | product | flag |
--- ------------ -------------
| 1 | soap | home |
| 1 | key | office |
| 2 | cake | home |
| 2 | lock | office |
| 3 | biscuit | home |
| 3 | pen | office |
--- ------------ -------------
как мне выполнить это объединение в mysql, пожалуйста, помогите мне. я новичок
Комментарии:
1. Зачем вам 2 разных магазина, если вы могли бы хранить все в одном магазине с флагом аутсорсинга. Таким образом, у вас было бы
shop(id, product, flag)
иshop_type(id, name)
или для действительно хорошей нормализации вы могли бы сделатьshop(id, product, shop_type)
,shop_type(id, name)
иproduct(id, name)
2. «для действительно хорошей нормализации» — что это значит? Они уже полностью нормализованы.
Ответ №1:
Выполните UNION
запрос и введите flag
столбец, используя соответствующие значения.
SELECT id, product, 'home' AS flag
FROM home_shop
UNION ALL
SELECT id, product, 'office' AS flag
FROM office_shop
ORDER BY id, flag
Обратите внимание, что вам не нужно использовать подзапрос для упорядочивания здесь, вы можете просто указать столбцы, которые вы хотите использовать.