将两个SQL查询合并为一个查询


Two SQL queries into one query

我正在尝试连接两个SQL查询,我尝试了一些解决方案来解决以前在堆栈上提出的问题,但无法获得所需的输出。

我的第一个SQL查询是

SELECT * FROM albums_songs 
LEFT JOIN audio USING(AUDID) 
WHERE ARTID='".mysql_real_escape_string($artid)."' 
AND ALBID='".mysql_real_escape_string($albid)."'

第二种是

SELECT * FROM `albums_s` 
WHERE ALBUMID='".mysql_real_escape_string($albid)."' 
AND placeholder='1'

我需要在连接它们的SQL查询之后将它们连接到一个表中,并按ORDER BY sorder asc 进行排序

我尝试过的最好的查询如下,只是它将两个查询相乘作为矩阵乘法,结果是额外的行

 SELECT * FROM 
(SELECT * FROM albums_s 
    LEFT JOIN audio USING(AUDID)) as t1, 
(SELECT * FROM `albums_s`) as t2 
WHERE t1.ARTID='".mysql_real_escape_string($artid)."' 
AND t1.ALBID='".mysql_real_escape_string($albid)."'  
AND t2.placeholder='1' 
AND t2.ALBID='".mysql_real_escape_string($albid)."' 
ORDER BY t1.sorder asc";

因此,结果应该与前两个查询的结果相同,但只是加入到最后一个数组中,并按sorder asc 排序

编辑/查询1的输出很大,但必要的项目是:以及一些示例数据

AUDID    ASID    ALBID    ARTID    sorder    placeholder    sname     phname    phimage   coverart    playcount
  2        1       4        72        5           0          name1         NULL        NULL       img1.jpg    543
  5        2       4        72        2           0          name2         NULL        NULL      img2.jpg    127
  4        3       6        72        3           0          name3         NULL        NULL      img3.jpg

查询2 的输出

AUDID    ASID    ALBID    ARTID    sorder    placeholder    phname    phimage
  6       4        4        72        4           1           name4     img4.jpg

在新查询之后,结果应该是(WHERE ALBID=4和ARTID=72)

AUDID    ASID    ALBID    ARTID    sorder    placeholder    sname  phname    phimage   coverart    playcount
  5        2       4        72        2           0         name2         NULL        NULL      img2.jpg    127 
  4        3       6        72        3           0         name3         NULL        NULL      img3.jpg
  6       4        4        72        4           1         NULL          name4     img4.jpg    NULL    NULL
  2        1       4        72        5           0         name1         NULL        NULL       img1.jpg    543

可以看出,输出是相同的,唯一的区别是表被连接成一个表,然后由sorder

排序

通过t.sorder asc 从(query1联合query2)t顺序中选择t.sorder、t.other_fields