Mysql 将两个查询输出合并为一个查询

Mysql 将两个查询输出合并为一个查询,mysql,Mysql,第一次查询 SELECT a.id attribute_id,a.attribute_name, group_concat(distinct(pad.product_attribute_value) order by a.id) as group_name_values FROM product_attributes pa INNER JOIN product_attribute_details pad ON pad.product_attribute_id = pa.id INNER JOI

第一次查询

SELECT a.id attribute_id,a.attribute_name,
group_concat(distinct(pad.product_attribute_value) 
order by a.id) as group_name_values
FROM product_attributes pa
INNER JOIN product_attribute_details pad ON pad.product_attribute_id = pa.id
INNER JOIN products p ON p.id = pa.product_id 
  AND p.delete_status != 1 
  AND p.is_completed = 0 
  AND p.is_publish = 0 
  AND p.primary_category_id = 8
INNER JOIN attributes a ON a.id = pad.attribute_id
INNER JOIN attribute_values av ON av.attribute_id = a.id
INNER JOIN stores s ON s.id = p.store_id
  AND s.delete_status != 1 
  AND s.is_approved = 0 
  AND s.status = 0 
  AND s.id = 2
GROUP BY a.id
输出:

+--------------+------------------+---------------------+
| attribute_id | attribute_name   | group_name_values   |
+--------------+------------------+---------------------+
|     27       |   Color          |  Red,Blue           |
|     30       |   Screen Size    |  6 Inch,5 Inch      |
|     31       |   Primary Camera |  13 MP,5 MP,1.2 MP  |
+--------------+------------------+---------------------+
+---------------+--------------------+-----------------------------+
| attribute_id  |   attribute_name   |   group_name_values         |
+---------------+--------------------+-----------------------------+
|     30        |  Screen Size       |    6 Inch,5 Inch,4.3 Inch   |
|     31        |  Primary Camera    |    10 MP,5 MP,13 MP         |
+---------------+--------------------+-----------------------------+
+---------------+--------------------+-----------------------------+
| attribute_id  |    attribute_name  |  group_name_values          | 
+---------------+--------------------+-----------------------------+  
|     30        |   Screen Size 6    |   Inch,5 Inch,4.3 Inch      |
|     31        |   Primary Camera   |   10 MP,5 MP,13 MP,1.2 MP   |
|     27        |   Color            |   Red,Blue                  |
+---------------+--------------------+-----------------------------+
第二次查询

SELECT a.id as attribute_id,a.attribute_name,
group_concat(av.attribute_value order by a.id) as group_name_values
FROM category_attributes ca
LEFT JOIN store_categories sc ON sc.category_id = ca.id 
LEFT JOIN stores s ON s.id = sc.store_id AND s.id = 2 
LEFT JOIN attribute_group_relations agr ON agr.id = ca.attribute_group_relation_id
LEFT JOIN attributes a ON a.id = agr.attribute_id
LEFT JOIN attribute_values av ON av.attribute_id = a.id
WHERE ca.category_id = 8
GROUP BY a.id
输出:

+--------------+------------------+---------------------+
| attribute_id | attribute_name   | group_name_values   |
+--------------+------------------+---------------------+
|     27       |   Color          |  Red,Blue           |
|     30       |   Screen Size    |  6 Inch,5 Inch      |
|     31       |   Primary Camera |  13 MP,5 MP,1.2 MP  |
+--------------+------------------+---------------------+
+---------------+--------------------+-----------------------------+
| attribute_id  |   attribute_name   |   group_name_values         |
+---------------+--------------------+-----------------------------+
|     30        |  Screen Size       |    6 Inch,5 Inch,4.3 Inch   |
|     31        |  Primary Camera    |    10 MP,5 MP,13 MP         |
+---------------+--------------------+-----------------------------+
+---------------+--------------------+-----------------------------+
| attribute_id  |    attribute_name  |  group_name_values          | 
+---------------+--------------------+-----------------------------+  
|     30        |   Screen Size 6    |   Inch,5 Inch,4.3 Inch      |
|     31        |   Primary Camera   |   10 MP,5 MP,13 MP,1.2 MP   |
|     27        |   Color            |   Red,Blue                  |
+---------------+--------------------+-----------------------------+
我想合并两个查询结果的输出

输出:

+--------------+------------------+---------------------+
| attribute_id | attribute_name   | group_name_values   |
+--------------+------------------+---------------------+
|     27       |   Color          |  Red,Blue           |
|     30       |   Screen Size    |  6 Inch,5 Inch      |
|     31       |   Primary Camera |  13 MP,5 MP,1.2 MP  |
+--------------+------------------+---------------------+
+---------------+--------------------+-----------------------------+
| attribute_id  |   attribute_name   |   group_name_values         |
+---------------+--------------------+-----------------------------+
|     30        |  Screen Size       |    6 Inch,5 Inch,4.3 Inch   |
|     31        |  Primary Camera    |    10 MP,5 MP,13 MP         |
+---------------+--------------------+-----------------------------+
+---------------+--------------------+-----------------------------+
| attribute_id  |    attribute_name  |  group_name_values          | 
+---------------+--------------------+-----------------------------+  
|     30        |   Screen Size 6    |   Inch,5 Inch,4.3 Inch      |
|     31        |   Primary Camera   |   10 MP,5 MP,13 MP,1.2 MP   |
|     27        |   Color            |   Red,Blue                  |
+---------------+--------------------+-----------------------------+

可能有更好的方法可以做到这一点,但在收集所有数据之后,您非常想推迟分组,您可以使用mysql的
UNION
语法进行分组,在收集所有数据之后,您可以对其进行分组,我不知道这是否有效,因为我无法测试它,但请告诉我:

SELECT t_outer.attribute_id as attribute_id, t_outer.attribute_name, group_concat(t_outer.name_values) as group_name_values

FROM

((SELECT a.id attribute_id,a.attribute_name, distinct pad.product_attribute_value as name_values

FROM product_attributes pa

INNER JOIN product_attribute_details pad ON pad.product_attribute_id = pa.id

INNER JOIN products p ON p.id = pa.product_id AND p.delete_status != 1 AND p.is_completed = 0 AND p.is_publish = 0 AND p.primary_category_id = 8

INNER JOIN attributes a ON a.id = pad.attribute_id

INNER JOIN attribute_values av ON av.attribute_id = a.id

INNER JOIN stores s ON s.id = p.store_id AND s.delete_status != 1 AND s.is_approved = 0 AND s.status = 0 AND s.id = 2) t_1

UNION

(SELECT a.id as attribute_id,a.attribute_name, av.attribute_value as name_values

FROM category_attributes ca

LEFT JOIN store_categories sc ON sc.category_id = ca.id

LEFT JOIN stores s ON s.id = sc.store_id AND s.id = 2

LEFT JOIN attribute_group_relations agr ON agr.id = ca.attribute_group_relation_id

LEFT JOIN attributes a ON a.id = agr.attribute_id

LEFT JOIN attribute_values av ON av.attribute_id = a.id

WHERE ca.category_id = 8) t_2 ) t_outer

GROUP BY t_outer.attribute_id

ORDER BY t_outer.attribute_id
这是一种方式:

SELECT subquery_1.attributes, subquery_2.attributes
FROM (Query1) as subquery_1 
LEFT JOIN (Query2) as subquery_2
ON subquery_1.attribute = subquery_2.attribute

它完成了Mauricio Trajano我完成了没有必要给别名像t_1,t_2这样的内部查询只有一个别名t_Outer谢谢你