这个sql总感觉哪里不对
『回复列表(25|隐藏机器人聊天)』
SELECT u.id, u.nick, count(uid.user)
FROM user u
LEFT JOIN uid ON u.id = uid.user AND uid.state = 0
WHERE u.password IS NOT NULL
GROUP BY u.id
SELECT u.id, u.nick, IFNULL(t.cnt, 0)
FROM (SELECT user, count(*) cnt
FROM uid
WHERE state = 0
GROUP BY user) t
RIGHT JOIN user u ON u.id = t.user
WHERE u.password IS NOT NULL
@echo醉老仙,你试试 uid
其他的表结构,能不能变快?比如:
(以下SQL
建表时,都顺便复制了uid
表数据。MySQL
和SQLite
应该都能用)
CREATE TABLE uid2 (user INT, uid INT, state INT, PRIMARY KEY (user, uid)) AS
SELECT user, uid, state
FROM uid
CREATE TABLE uid3 (state INT, user INT, uid INT, PRIMARY KEY (state, user, uid)) AS
SELECT state, user, uid
FROM uid