或OR我有一個表TableA
列[AccountID, Email]
。我有另一張表TableB
與[AccountID_1, AccountID_2, email]
。我需要將TableA
中的AccountID
與AccountIDs
中的TableB
中的任一個匹配。這兩種方法似乎都不起作用。第一個似乎是停滯不前或只是永遠(這兩個表有幾十萬條)。第二個有錯誤"Can't reopen table: TableB".
MySQL的聯盟與加入條款
試圖加入或
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;
在你忘了說,工會試圖 '上TableB.AccountID加入表B ...' 的第二次,這就是爲什麼它給你一個錯誤。 –
對不起,這只是一個錯誤,把我的查詢進入SO。我糾正了它。 – Asif
所有3個'AccountID' *列都有索引嗎?你是否在'join'查詢上運行'explain'來查看哪些索引正在使用或未被使用? –