0

私はテーブルを持っています:

InvoiceItem
----------------
id     
type      <- 'ITEM' 'FEE' 'OTHER'
parentid  <- InvoiceItem id of the parent invoice item
<some other columns>

このテーブルをそれ自体に結合するにはどうすればよいですか。id=指定されたidであるすべてのInvoiceItem列に加えて、指定されたInvoiceItemidを親IDとして持つアイテムがテーブルに含まれている場合にtrue| false 1|0を与える列を取得します。

4

1 に答える 1

2
  1. 相関サブクエリの使用:

    SELECT a.*,
           EXISTS(SELECT * FROM InvoiceItem b WHERE b.parentid = a.id)
             AS has_children
    FROM   InvoiceItem a
    WHERE  a.id = ?
    
  2. 外部結合の使用:

    SELECT a.*, COUNT(b.id) > 0 AS has_children
    FROM   InvoiceItem a LEFT JOIN InvoiceItem b ON b.parentid = a.id
    WHERE  a.id = ?
    
于 2013-01-03T15:39:30.877 に答える