我试图对sqlite进行查询。我想检索与配置文件ID无关的服务器的服务器ID(我有配置文件的ID)。表serpro表示表之间的n:n关系。
这是我的查询(显然是错的):
Select server._id, server.server
from server where server._id != ( SELECT server._id FROM server
INNER JOIN serpro ON server._id = serpro._ids
INNER JOIN profile ON profile._id = serpro._idp
where profile._id=" + idProfile;
这些是表格创建句子:
create table server (_id integer primary key autoincrement,ip string not null, port string not null, server string not null);
create table profile (_id integer primary key autoincrement, profile string not null);
create table serpro (_ids integer not null, _idp integer not null, PRIMARY KEY (_ids, _idp), CONSTRAINT fk_idsps FOREIGN KEY (_ids) REFERENCES server(_id) ON DELETE CASCADE, CONSTRAINT fk_idspp FOREIGN KEY (_idp) REFERENCES server(_id) ON DELETE CASCADE);
感谢您的帮助!
答案 0 :(得分:1)
只是粗略地看一下我会说你忘了关闭子查询。将a)添加到查询的末尾
"Select server._id, server.server from server where server._id != " +
" ( SELECT server._id FROM server INNER JOIN serpro ON server._id = serpro._ids " +
" INNER JOIN profile ON profile._id = serpro._idp " +
" where profile._id=" + idProfile + ")";