我有一个表TableA
和列[AccountID, Email]
。我有另一个表TableB
和[AccountID_1, AccountID_2, email]
。我需要将AccountID
中的TableA
与AccountIDs
中的任何TableB
进行匹配。这些方法似乎都不起作用。第一个似乎停滞不前或只是永久地使用(两个表都有几十万个条目)。第二个错误为"Can't reopen table: TableB".
用OR尝试加入
select count(distinct TableA.id) from TableA
JOIN TableB ON TableB.AccountID = TableA.AccountID_1
OR TableB.AccountID = TableA.AccountID_2
;
尝试SQL UNION
select count(distinct b.id) from (
select * from TableA
join TableB on TableB.AccountID = TableA.AccountID_1
union
select * from TableA
join TableB on TableB.AccountID = TableA.AccountID_2
) as b;
最佳答案
你可以试试
select count(*) from TableA where
exists ( select 1 from TableB where
AccountID in (AccountID_1,AccountID_2))
关于mysql - MySQL UNION vs JOIN使用OR in子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36759772/