MySQL如何在此查询中创建select子查询

MySQL如何在此查询中创建select子查询,mysql,sql,Mysql,Sql,如何通过使用子查询将这两个查询转换为一个查询 select p.id, m.display_name, m.updated_at, group_concat(meta.value) as value, p.path from metadata_custom meta right join page as p on p.id = meta.page_id inner join metadata m on p.metadata_id = m.id where p.path like '/histor

如何通过使用子查询将这两个查询转换为一个查询

select p.id, m.display_name, m.updated_at, group_concat(meta.value) as value, p.path
from metadata_custom meta
right join page as p on p.id = meta.page_id
inner join metadata m on p.metadata_id = m.id
where p.path like '/history/%' and p.path not like '/history/%/%'
group by p.id

SELECT * FROM cascade_publish.folder
where path like '/history/%' and path not like '/history/%/%'
我见过的大多数子查询都使用WHERE IN。。。。
我最好能够将第二个查询放在第一个查询中的某个位置,我该如何处理呢?

一种方法是将子查询用作选择字段:

SELECT p.id
 ( SELECT folder FROM cascade_publish
   where path like '/history/%' and path not like '/history/%/%') as publish_folder
FROM ...
您可以将带有别名的SELECT放在表正常运行的任何位置。例如:

SELECT * FROM table
JOIN (SELECT * FROM other_table WHERE x = 10) AS temp
或者,像这样:

SELECT SUM(temp.value) FROM (SELECT MAX(value) AS value FROM my_table GROUP BY whatever) AS temp

我试过用这种方法来处理如下内容:选择p.id,m.display\u name,m.updated\u at,group\u concatmeta.value作为值,p.path,从cascade_publish.folder中选择*,其中路径类似于'csusm/history/%',路径不类似于'csusm/history/%/%',从metadata_自定义meta右连接页中选择p.id=meta.page上的p作为p.id=meta.page_id内部连接元数据m on p.metadata_id=m.id,其中p.path类似于'csusm/history/%',而p.path不类似于'csusm/history/%/%'组,但我得到一个错误代码me操作数应仅包含1列,因为在子查询中使用select*时,只能选择单个字段。我的例子显示了从cascade_publish中选择文件夹-它选择一个单独的文件夹,我明白了。。。当我尝试在该子查询中仅使用一个字段进行选择时,我得到一个错误,因为该子查询返回多行。。。那么我应该使用子查询吗?因为我确实希望第二个查询返回几行。正确-如果可能,您可以使用另一个联接,但如果不可能,您将需要单独的查询。目前尚不清楚这两个查询之间的关系。