powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Отношение типа "контакт-список". Выборка контактов, которые находятся в одном из списков
2 сообщений из 2, страница 1 из 1
Отношение типа "контакт-список". Выборка контактов, которые находятся в одном из списков
    #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
Отношение типа "контакт-список". Выборка контактов, которые находятся в одном из списков
    #38380392
PetrovS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел решение в этой теме
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Отношение типа "контакт-список". Выборка контактов, которые находятся в одном из списков
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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