我試圖加入兩個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