我有一个带Id的表,问题是我需要提供N个ID(使用WHERE id IN(1,5,101))但我需要返回相同数量的记录(如果我发送100 ids,我需要一个包含100行的DataSet ..)即使此表中不存在Id。
我正在使用SQLite,所以RIGHT JOIN不是一个选项。
以下是我所拥有但不能使其有效的一些样本:S ..
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)
使用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
。
答案 1 :(得分: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")