Ошибка Sqlite делает запрос - PullRequest
0 голосов
/ 18 мая 2010

Я пытаюсь сделать запрос на sqlite. Я хочу получить идентификатор сервера, который не связан с идентификатором профиля (у меня есть идентификатор профиля). Таблица 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 Ответ

1 голос
/ 18 мая 2010

Просто бегло посмотрев на него, я бы сказал, что вы забыли закрыть подзапрос. Добавьте а) в конец вашего запроса

  "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 + ")";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...