Запрос MySQL для извлечения основной записи из основной таблицы и вложенных записей из другой таблицы в одной инструкции SQL

#mysql #sql

Вопрос:

У меня есть следующие две таблицы

Название таблицы: категория

 categoryid         Categoryname
1                  Mobiles
2                  Laptops
 

Название таблицы: продукт

 productid          categoryid         productname
1                  1                  Nokia
2                  2                  Dell
3                  1                  Mi
4                  1                  Samsung
5                  2                  Lenovo
 

Теперь я ищу один оператор SQL, который должен извлекать все в одном операторе sql.

Ожидаемый результат приведен ниже:

 recordtype        categoryid     productid           category       productname
Category          1              0                   Mobiles
Product           1              1                                  Nokia  
Product           1              3                                  Mi
Product           1              4                                  Samsung
Category          2              0                   Laptops
Product           2              2                                  Dell
Product           2              5                                  Lenovo    
 

Ответ №1:

Вы можете использовать union all :

 select 'category' as recordtype, categoryid, 0 as productid, categoryname as category, null as product
from category
union all
select 'product', categoryid, productid, null, productname
from product;
 

Комментарии:

1. Позвольте мне проверить это.