2012-10-16 11 views
3

我有一個帶有Id的表,事情是我需要提供N個Id(使用WHERE id IN(1,5,101)),但我需要得到相同的(如果我發送100個ID,我需要一個有100行的DataSet ..),即使Id在該表上不存在也是如此。在同一個DataResult上加入Found和Not Fund記錄

我正在使用SQLite,因此RIGHT JOIN不是一個選項。

這裏是我有什麼,但不能使它工作的一些樣本:秒。

SELECT * FROM (
SELECT r.report_id, r.batch_name, tr.report_id id, tr.batch_name bn 
FROM reports tr 
LEFT OUTER JOIN ( SELECT report_id, batch_name FROM reports 
        WHERE batch_name IN ("L6964498","AAAAAA")) r on r.report_id = tr.report_id) as v 
LEFT JOIN reports ON v.id = reports.report_id 

在此先感謝...

+0

我無法將您的(1,5,101)與您的查詢相關聯 – RichardTheKiwi

+0

(1,5,101)是我將提供的ID,並且它們是IN(「L6964498」,「AAAAAA」)我有在查詢.. –

回答

1

使用化妝批次名稱的虛擬表SELECT .. UNION ALL SELECT ..。然後加入到你的reports表。

SELECT tr.batch_name, r.report_id 
FROM (SELECT 'L6964498' batch_name UNION ALL 
     SELECT 'AAAAAA') tr 
LEFT JOIN reports r on r.report_id = tr.report_id 

如果您有100件產品,您將有99 UNION ALL s。

+0

謝謝大家,這個作品完美! –

0
SELECT r.report_id, r.batch_name, tr.report_id id, tr.batch_name bn 
FROM reports tr 
LEFT OUTER JOIN reports r on r.report_id = tr.report_id and     
LEFT JOIN reports ON r.id = reports.report_id 
where r.batch_name IN ("L6964498","AAAAAA")