我有两个表,路线和用户。每条路由都有一个整数ID,每个用户都有一个逗号分隔的路由列表,他们可以访问。我试图从路由表中选择那些行,其id位于用户行的id列表中。sqlite3:我想根据不同表中的ID列表选择行
查询(至少我是怎么想的,应该形成),我尝试使用是一样的东西
select *
from routes
where id in (select allowed_ids
from users
where username = 'sameple');
路由表的格式为
id, name
0, 'test name'
2, 'test name'
3, 'test name'
用户表格式为
id, name, username, password, allowed_ids
0, 'name', 'uname', 'md5pw', '0, 3'
问题是,这是行不通的。有没有更好的方法或做到这一点?
我对SQL很陌生,所以任何帮助都非常感谢!
你的问题是什么?你使用的是子查询,它是一个基于来自其他表的值得到来自一个表的结果的有效选项。 – 2014-01-22 21:14:45
您会发现在这里使用连接会很有用。 – squiguy
@squiguy好吧,怎么样? –