连接两个表与子选择也是空的行
问题描述:
我有两个表: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?
答
听起来像你想要使用JOIN
。即使在你的例子中,你也可以使用INNER JOIN
而不是子查询。
在这种情况下,你想有一个LEFT JOIN
,以包括NULL
SELECT trx.*, open
FROM trx
LEFT JOIN events AS ev
ON ev.id = trx.purchaseid