我有一个表TableA和列[AccountID, Email]。我有另一个表TableB[AccountID_1, AccountID_2, email]。我需要将AccountID中的TableAAccountIDs中的任何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/

10-13 00:57