我有两个表: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?
答案 0 :(得分:1)
听起来你想使用JOIN
。即使在您的示例中,您也可以使用INNER JOIN
而不是子查询。
在这种情况下,您希望LEFT JOIN
包含NULL
SELECT trx.*, open
FROM trx
LEFT JOIN events AS ev
ON ev.id = trx.purchaseid