如何获取连接子查询为空的行?获取左连接子查询为空(未找到)的行
SELECT *
FROM bank_recon b
LEFT JOIN (
SELECT o.bank_recon_id
FROM data_voucher_ocr_bank o
LEFT JOIN data_voucher v ON v.id=o.data_voucher_id
WHERE v.is_ocr_verified=1
LIMIT 1
) s ON s.bank_recon_id=b.id
WHERE s IS NULL
更新
当使用此查询(子查询)的东西被取出取决于如果is_ocr_verified
设置或不
SELECT o.bank_recon_id
FROM data_voucher_ocr_bank o
LEFT JOIN data_voucher v ON v.id=o.data_voucher_id
WHERE v.is_ocr_verified=1 && o.bank_recon_id=320062
当使用此查询一切都是牵强不管是什么!?
SELECT b.txt, b.amount
FROM bank_recon b
LEFT JOIN (
SELECT o.bank_recon_id
FROM data_voucher_ocr_bank o
LEFT JOIN data_voucher v ON v.id=o.data_voucher_id
WHERE v.is_ocr_verified=1
LIMIT 1
) s ON s.bank_recon_id=b.id
WHERE b.id=320062 && s.bank_recon_id IS NULL
你需要在一列没有交付表别名WHERE过滤器。 –
为什么要使用反连接?我只是使用“NOT EXISTS”或“NOT IN”。这些更可读。你的子查询中的'LEFT JOIN'应该是'INNER JOIN'(你的'WHERE'子句甚至会隐式地将它变成一个内连接)。 –
@thorsten kettner你能举个例子吗? – clarkk