2013-04-11 82 views
0

我有兩個表:trx,事務和事件與事件。 trx.purchaseid =外鍵events.id連接兩個表與子選擇也是空的行

我試圖從事件表中的每個事務和一個字段創建與元組的關係。

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 | NULL而不是1 | 0 | 0?

回答

1

聽起來像你想要使用JOIN。即使在你的例子中,你也可以使用INNER JOIN而不是子查詢。

在這種情況下,你想有一個LEFT JOIN,以包括NULL

SELECT trx.*, open 
FROM trx 
LEFT JOIN events AS ev 
ON ev.id = trx.purchaseid