Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 我需要帮助连接两个查询以获得一个表作为结果_Mysql_Sql - Fatal编程技术网

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 .. 我看你已经删除了你的评论,因为你接受了答案。。。。。。。。。。。。对不起,我不是故意的,我想你们可以把两个答案作为接受答案。我把它还给你了。再次抱歉