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

Sql 根据时间从两个表中检索值,sql,sqlite,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

我有两张像下面这样的桌子

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,我试图从polls表中获取登录用户的轮询,以及在其他用户创建帐户后创建的轮询,这些用户在该用户之后创建帐户,标签为“您轮询,其他人轮询”

我在这里,但不知道如何进一步进行

SELECT pollid, name FROM polls AS P JOIN users AS U ON ......
请帮我做这个。如果我只想访问当前的用户投票,我想我不需要联接表,但下面的查询可以工作

SELECT pollid, name FROM polls where userid=inputUserid

但查询依赖于两个表。

如果我正确理解了逻辑:

SELECT *
FROM polls as P
WHERE userid IN (SELECT userID FROM users WHERE UserID >= @YourUSerID);
在子查询中,您将选择您的用户以及之后创建的所有用户。 在主查询中,选择子查询中用户的所有轮询

Join还将起到以下作用:

SELECT *
FROM polls as P
INNER JOIN users as U ON p.userID = u.userID
WHERE u.userid >= @youruser
如果用户ID未增加:

子查询查找创建用户的时间; 子查询从子查询中查找时间之后创建的所有用户; 查询从子查询中查找用户的所有轮询:

SELECT *
FROM polls
WHERE userID IN (SELECT UserID 
                 FROM users
                 WHERE time >= (SELECT time
                                FROM Users
                                WHERE userID = @YourUser)

选择pollid,name FROM polls AS P JOIN users AS U ON U.userid=P。userid@Almazini请再次阅读我的问题,我还想获得其他用户对检索用户帐户后创建的帐户的轮询。因此,我们可以尝试另一种方法。从轮询中选择*作为P,其中时间=>从用户中选择时间作为U,其中U.UserID=@youruser@Almazini但这将考虑民意调查的时间,我想考虑用户账号创建的时间甚至连线的用户ID都是微不足道的。谢谢。将尝试此操作,并让您知道它是否工作。在第二个查询中,您只检查一个用户,不是所有用户都正确吗?p、 userID=u.userIDno,首先它通过userID列连接两个表。而在WHERE子句中,它只过滤具有相同或更大用户ID的用户。这是一个漂亮的答案。请你也添加我在问题中提到的基于时间的逻辑。我现在从你的查询中了解到的问题是,userId不是自动递增的ID,它是手动给定的id。只有序列号是自动递增的id。因此,它应该基于用户的时间或序列号,而不是u.userid=>@youruser。当我尝试使用webSQL执行相同的id时,我遇到了错误。SQL无法准备>附近的语句1:语法错误