Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Отношение типа "контакт-список". Выборка контактов, которые находятся в одном из списков / 2 сообщений из 2, страница 1 из 1
28.08.2013, 13:20
    #38379802
PetrovS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отношение типа "контакт-список". Выборка контактов, которые находятся в одном из списков
1. Пишу и публикую скрипт, создающий тестовые таблицы. Убедился в их работоспособности
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
create table contact (
  id integer primary key autoincrement,
  name varchar
);

create table contactlist (
  id integer primary key autoincrement,
  name varchar
);

create table contact_to_contactlist (
  contact_id integer,
  contactlist_id integer
);

insert into contact (id,name) values (1,'Sergei');
insert into contact (id,name) values (2,'Ivan');
insert into contact (id,name) values (3,'Alex');

insert into contactlist (id,name) values (1,'Home');
insert into contactlist (id,name) values (2,'Friends');
insert into contactlist (id,name) values (3,'Work');

insert into contact_to_contactlist (contact_id,contactlist_id) values (1,1);
insert into contact_to_contactlist (contact_id,contactlist_id) values (1,2);
insert into contact_to_contactlist (contact_id,contactlist_id) values (2,1);
insert into contact_to_contactlist (contact_id,contactlist_id) values (2,3);
insert into contact_to_contactlist (contact_id,contactlist_id) values (3,1);
insert into contact_to_contactlist (contact_id,contactlist_id) values (3,2);
insert into contact_to_contactlist (contact_id,contactlist_id) values (3,3);



2. Хочу получать контакты, которые находятся в одном из контакт листов. Например - получить контакты, которые находятся в 'Home' и в 'Friends' или 'Work'. Количество контакт листов может быть около 100-200 и условие приведенное выше может быть таким -
получить контакты, которые находятся в 'Home' или 'Hospital' и в 'Friends' или 'Work'

3. На выходе иметь список контактов с их полями (в данном примере только 'name')

4. Пытался таким запросом. Но понимаю что написан неправильно этот запрос, и выбирает соответственно он 0 строк

Код: sql
1.
SELECT  * FROM `contact` LEFT JOIN `contact_to_contactlist` ON `contact_to_contactlist`.contact_id = `contact`.id LEFT JOIN `contactlist` ON `contact_to_contactlist`.contactlist_id = `contactlist`.id AND contactlist.id IN(2,1) and contactlist.id IN (1,3)
...
Рейтинг: 0 / 0
28.08.2013, 22:10
    #38380392
PetrovS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отношение типа "контакт-список". Выборка контактов, которые находятся в одном из списков
Нашел решение в этой теме
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Отношение типа "контакт-список". Выборка контактов, которые находятся в одном из списков / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]