2016-04-28 15 views
0

以下の2つのクエリがありますが、実際には両方のクエリで内部的に内部結合が使用されます。今、私は1つに、これらの2つのクエリを結合したいのですが、3つのテーブル2つの独立した内部結合を特定の条件で1つに結合する

  1. ioa_invoice_line
  2. ioa_invoice_line_notes
  3. column invo_id = 2の値と列 invo_idがテーブルに ioa_invoice_line

    であることを条件だから関係

  4. IOA_INV_LINE_NOTE_MAP

これらは、QUですeries

select 
    e.id 
    , e.invo_id 
    , b.id 
    , b.inli_id 
from 
    ioa_invoice_line e 
inner join 
    ioa_invoice_line_notes b on e.id = b.inli_id; 

select 
    e.id 
    , b.id 
    , b.ATTACHMENT_BLOB_ID 
    , b.INV_LINE_NOTE_ID 
from 
    ioa_invoice_line_notes e 
inner join 
    IOA_INV_LINE_NOTE_MAP b on e.id = b.INV_LINE_NOTE_ID; 

ioa_invoice_line enter image description here

答えて

0

これは、私はあなたが加入したいと思うだろうと想定方法です。あなたは真であるとの二つの条件を探しているので:
1)あなたはそのinvo_idがある見るためにチェックすることがありますのでioa_invoice_line.invo_idが

を存在することをioa_invoice_line.invo_id = 2
2)は2に等しいあなたはそれが2

SELECT L.id, L.invo_id, LN.id, LNM.id, LNM.attachment_blob_id, LNM.inv_line_note_id 
FROM ioa_invoice_line_notes LN 
INNER JOIN ioa_invoice_line L ON LN.inli_id = L.id 
INNER JOIN ioa_inv_line_note_map LNM ON LN.id = LNM.inv_line_note_id 
WHERE L.invo_id = 2; 

あなたはInvのラインID、Invのライン請求書ID、ラインノートID、ラインノート地図を探していたようですが、ちょうど見えたの値を見つけた場合、それが存在することをかなり確信することができIDおよびその他のIDをNotes Mapテーブルに追加します。

0

クエリは、invo_idの条件を結合に統合します。内部結合のため、選択したレコードにinvo_idの存在が無料で提供されます。

select line.id    id_line 
     , line.invo_id 
     , notes.id    id_notes 
     , notes.inli_id 
     , map.id     id_map 
     , map.attachment_blob_id 
     , map.inv_line_note_id 
     from ioa_invoice_line  line 
INNER JOIN ioa_invoice_line_notes notes on (
               line.id  = notes.inli_id 
              AND line.invo_id = 2 
              ) 
INNER JOIN ioa_inv_line_note_map map on map.id = notes.inv_line_note_id 
     ; 
関連する問題