我从表中使用以下查询选择交易:如果子查询没有找到联结,如何忽略WHERE IN子句?
SELECT t.*
FROM transactions AS t
WHERE t.id IN
(
SELECT t2.id
FROM `virtual_account-account` AS vaa
LEFT JOIN transactions AS t2
ON t2.account = vaa.account
WHERE vaa.virtual_account = 3
)
AND t.id IN
(
SELECT tt.transaction
FROM `virtual_account-tag` AS vat
LEFT JOIN `transaction-tag` AS tt
ON tt.tag = vat.tag
WHERE vat.virtual_account = 3
)
ORDER BY t.date
不过,我想修改该这样,如果,例如,结合表virtual_account-account
不包含任何路口,其中vaa.virtual_account = 3
,然后应该忽略相应的t.id IN (...)
条件。到目前为止,我没有找到解决方案,所以任何帮助将不胜感激。
怎么样,如果两个子选择返回任何结果?你想显示所有交易还是仅显示所有交易? –
@FabianBigler其实,我不太在意这种情况,因为这是不可能发生的。然而,空的结果会比选择所有交易更好。 – Niko