0

トランザクションを含む trx とイベントを含むイベントの 2 つのテーブルがあります。 trx.purchaseid= 外部キーevents.id

すべてのトランザクションのタプルとイベント テーブルの 1 つのフィールドとの関係を作成しようとしています。

SELECT trx.*,
    ( SELECT open FROM events AS ev
      WHERE ev.id = trx.purchaseid
    ) AS open
FROM trx

完璧に動作します。ただし、同じ ID を持つイベント行がない場合もあります。副選択は 0 行を返します。フィールドのopen結果は0. ただし、open の値は 1|0 にすることができます。

このクエリを変更して、openフィールドに 1|0|0 ではなく 1|0|NULL を含める方法はありますか?

4

1 に答える 1

1

を使用したいようですねJOIN。あなたの例でも、サブクエリのINNER JOIN代わりにを使用できます。

この場合、LEFT JOINを含める必要がありますNULL

SELECT trx.*, open
FROM trx
LEFT JOIN events AS ev
ON ev.id = trx.purchaseid
于 2013-04-11T19:40:51.607 に答える