我试图加入两个SQL查询,我尝试了一些解决方案,以前在堆栈上提出的问题,并且无法获得所需的输出。将两个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
我试过的最好的查询是以下内容,不过它将两个查询一起乘以矩阵乘法,结果是额外的ro WS:
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
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
查询1,查询2的显示结果排序,你的连接查询。 – bos 2012-03-20 16:25:00
如果我知道如何像你说的那样简单地做到这一点,你不觉得我已经拥有了吗? ;) – JimmyBanks 2012-03-20 16:28:22
我猜bos的意思是发布查询的结果,所以我们可以更好地帮助您 – Iridio 2012-03-20 16:31:15