我有两张表。一个用于主帐户,一个用于被禁帐户,我想选择主帐户中的所有成员,只选择那些没有被禁的成员。
SELECT Username, $field AS Output
FROM `Player_Accounts`, `Ban_List`
WHERE Ban_List.Banned_Name != Username
ORDER BY $field DESC LIMIT 0, 25;
查询需要1,30min才能执行和显示结果
IMHO您的查询不正确。行数非常高(你有130万用户吗??)
试试这个:
SELECT p.username
FROM Player_Accounts p
WHERE NOT EXISTS(
SELECT 'BANNED'
FROM Ban_List b
WHERE b.banned_name = p.username
)
备选方案:
SELECT p.username
FROM Player_Accounts p
LEFT OUTER JOIN Ban_List b
ON p.username = b.banned_name
WHERE b.banned_name IS NULL