我有两张表,如下面
CREATE TABLE IF NOT EXISTS users
(
serial INTEGER NOT NULL,
userid INTEGER,
time INTEGER,
name TEXT NOT NULL,
PRIMARY KEY (serial)
);
CREATE TABLE IF NOT EXISTS polls
(
pollid TEXT NOT NULL,
name TEXT NOT NULL,
userid INTEGER NOT NULL,
time INTEGER NOT NULL,
PRIMARY KEY (pollid)
);
当用户登录时我将拥有userid,我正在尝试获取已登录用户的民意调查以及在此用户之后使用labels you polled
{{1}的民意调查表创建其帐户的其他用户之后创建的民意调查}}
我在这里但不知道如何继续进行
others polled
请帮我解决这个问题。如果我只想访问当前的用户民意调查,我认为我不需要加入表格,但以下查询将会有效
SELECT pollid, name FROM polls AS P JOIN users AS U ON ......
但查询依赖于两个表。
答案 0 :(得分:1)
如果我已正确理解逻辑:
SELECT *
FROM polls as P
WHERE userid IN (SELECT userID FROM users WHERE UserID >= @YourUSerID);
在子查询中,您将选择您的用户以及之后创建的所有用户。 在主查询中,选择子查询中用户的所有轮询。
加入也会有效:
SELECT *
FROM polls as P
INNER JOIN users as U ON p.userID = u.userID
WHERE u.userid >= @youruser
如果UserID没有增加:
子子查询查找创建用户的时间; 子查询查找从子子查询后创建的所有用户; 查询从子查询中查找用户的所有民意调查:
SELECT *
FROM polls
WHERE userID IN (SELECT UserID
FROM users
WHERE time >= (SELECT time
FROM Users
WHERE userID = @YourUser)