Mysql 我需要帮助连接两个查询以获得一个表作为结果
您好,我需要帮助连接两个查询,我用一个查询而不是两个不同的查询得到结果 第一个查询是:Mysql 我需要帮助连接两个查询以获得一个表作为结果,mysql,sql,Mysql,Sql,您好,我需要帮助连接两个查询,我用一个查询而不是两个不同的查询得到结果 第一个查询是: SELECT p.ID as product_id, p.post_title, max( CASE WHEN pm.meta_key = 'product_gender' and p.ID = pm.post_id THEN pm.meta_value END ) as gender, max( CASE WHEN pm.meta_key = '_price' and p.ID
SELECT p.ID as product_id, p.post_title,
max( CASE WHEN pm.meta_key = 'product_gender' and p.ID = pm.post_id THEN pm.meta_value END ) as gender,
max( CASE WHEN pm.meta_key = '_price' and p.ID = pm.post_id THEN pm.meta_value END ) as price,
max( CASE WHEN pm.meta_key = 'product_color' and p.ID = pm.post_id THEN pm.meta_value END ) as color,
max( CASE WHEN pm.meta_key = 'product_category' and p.ID = pm.post_id THEN pm.meta_value END ) as category,
max( CASE WHEN pm.meta_key = 'product_size' and p.ID = pm.post_id THEN pm.meta_value END ) as size
FROM
wp_posts p
join wp_postmeta pm on p.ID = pm.post_id
group by
p.ID
第二个是:
SELECT parentmeta.post_id as post_id,
concat((select option_value from wp_options where option_name ='siteurl' limit 1),'/wp-content/uploads/',childmeta.meta_value) as url
FROM wp_postmeta childmeta
INNER JOIN wp_postmeta parentmeta ON (childmeta.post_id=parentmeta.meta_value)
WHERE parentmeta.meta_key='_thumbnail_id' and childmeta.meta_key = '_wp_attached_file'
AND parentmeta.post_id = p.ID //I want to used the same ID as the previous query
现在两个表都给出了这个结果
第一个问题:
product_id post_title gender price color category size
83 Puma-Tshirt Man 19 RED Tshirt Medium
86 Nike-Pants Man 49 BLACK Pants Medium
第二个问题:
product_id url
83 www.img.com/puma.jpg
86 www.img.com/nike.jpg
我想要的是组合查询以获得如下结果:
product_id post_title gender price color category size url
83 Puma-Tshirt Man 19 RED Tshirt Medium www.img.com/puma.jpg
86 Nike-Pants Man 49 BLACK Pants Medium www.img.com/nike.jpg
非常感谢您的帮助,谢谢
( SELECT p.ID as product_id, p.post_title,
max( CASE WHEN pm.meta_key = 'product_gender' and p.ID = pm.post_id THEN pm.meta_value END ) as gender,
max( CASE WHEN pm.meta_key = '_price' and p.ID = pm.post_id THEN pm.meta_value END ) as price,
max( CASE WHEN pm.meta_key = 'product_color' and p.ID = pm.post_id THEN pm.meta_value END ) as color,
max( CASE WHEN pm.meta_key = 'product_category' and p.ID = pm.post_id THEN pm.meta_value END ) as category,
max( CASE WHEN pm.meta_key = 'product_size' and p.ID = pm.post_id THEN pm.meta_value END ) as size
FROM
wp_posts p
join wp_postmeta pm on p.ID = pm.post_id
group by
p.ID )
UNION
(SELECT parentmeta.post_id as post_id,
concat((select option_value from wp_options where option_name ='siteurl' limit 1),'/wp-content/uploads/',childmeta.meta_value) as url
FROM wp_postmeta childmeta
INNER JOIN wp_postmeta parentmeta ON (childmeta.post_id=parentmeta.meta_value)
WHERE parentmeta.meta_key='_thumbnail_id' and childmeta.meta_key = '_wp_attached_file'
AND parentmeta.post_id = p.ID //I want to used the same ID as the previous query)
这将为您提供所需的结果。
从你的问题来看,就像你只想将这两个问题结合起来,而不考虑它们的联接和全部。你可以联接这两个查询
select t1.*, t2.*
from (
SELECT p.ID as product_id, p.post_title,
max( CASE WHEN pm.meta_key = 'product_gender' and p.ID = pm.post_id THEN pm.meta_value END ) as gender,
max( CASE WHEN pm.meta_key = '_price' and p.ID = pm.post_id THEN pm.meta_value END ) as price,
max( CASE WHEN pm.meta_key = 'product_color' and p.ID = pm.post_id THEN pm.meta_value END ) as color,
max( CASE WHEN pm.meta_key = 'product_category' and p.ID = pm.post_id THEN pm.meta_value END ) as category,
max( CASE WHEN pm.meta_key = 'product_size' and p.ID = pm.post_id THEN pm.meta_value END ) as size
FROM wp_posts p
join wp_postmeta pm on p.ID = pm.post_id
group by p.ID
) t1
inner join (
SELECT parentmeta.post_id as post_id,
concat((select option_value from wp_options where option_name ='siteurl' limit 1),'/wp-content/uploads/',childmeta.meta_value) as url
FROM wp_postmeta childmeta
INNER JOIN wp_postmeta parentmeta ON (childmeta.post_id=parentmeta.meta_value)
WHERE parentmeta.meta_key='_thumbnail_id' and childmeta.meta_key = '_wp_attached_file'
) t2 on t1.product_id = t2.post_id
查询结构将为-
SELECT
A.*,B.Url
FROM
(
--Your First Query
)A
INNER JOIN
(
--Your Second Query
)B
ON A.Product_id = B.Product_id
注意:如果查询2中的记录可能比查询1中的记录少,请使用左连接。@iamrasjhah感谢您的快速回复,但是我仍然不知道如何处理它给我的第二个查询中的ID:1054-where子句中的未知列'p.ID',你可以尝试@scaisEdge给出的答案,因为如果你想在最后第二行使用相同的ID,并且parentmeta.post_ID=p.ID=>p.ID是未知的,这很有意义,这就是我试图将这些结合起来的主要问题two@AbdelKdj .. 我看你已经删除了你的评论,因为你接受了答案。。。。。。。。。。。。对不起,我不是故意的,我想你们可以把两个答案作为接受答案。我把它还给你了。再次抱歉