3

Idを持つ単一のテーブルがあります.N個のIDを提供する必要があります(WHERE ID IN(1,5,101)を使用)が、同じ数のレコードを返す必要があります(100個のIDを送信した場合、私は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

前もって感謝します ...

4

2 に答える 2

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 個ある場合、99UNION ALL秒になります。

于 2012-10-16T04:22:26.817 に答える
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")
于 2012-10-16T03:56:47.187 に答える