根据时间从两个表中检索值

时间:2014-11-07 09:52:00

标签: sql sqlite

我有两张表,如下面

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 ......

但查询依赖于两个表。

1 个答案:

答案 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)