执行查询的Sqlite失败

时间:2010-05-18 14:56:08

标签: sql sqlite

我试图对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);

感谢您的帮助!

1 个答案:

答案 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 + ")";