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?

4

1 回答 1

1

听起来你想使用JOIN. 即使在您的示例中,您也可以使用 anINNER 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 回答