The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (MySQL)
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

MySQL сложный поиск в группах с ИЛИ  , greenwar (ok), 27-Мрт-15, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


1. "MySQL сложный поиск в группах с ИЛИ  "  +/
Сообщение от Павел Самсонов (?), 27-Мрт-15, 16:55 
>[оверквотинг удален]
> так:
> bank='bank1',packet='packet1',doc1='ndfl',doc2='tk',doc3='td' (это ИЛИ)
> bank='bank1',packet='packet2',doc1='pass'
> bank='bank1',packet='packet3',doc1='inn'
> но тогда, если у клиента нет tk, то where doc1 != 'tk'
> AND doc2 != 'tk' AND doc3 != 'tk'
> а потом ещё раз проверять (для каждого банка), чтобы у этого банка
> _во всех_ пакетах не было тк
> а ещё для каждого документа так делать надо
> топорно, мягко говоря..

Таблица banks с полем packet, объединенная таблица documents с полями packet,document.
Select document from documents where packet = 'packet1'  дает состав документов пакета
Select bank from banks, documents where banks.packet=documents.packet and documents.document!='tk',
Дает банки без tk в пакете
Ну тут еще важно как ты у персоны документ хранишь. Можно разделить таблицу документов на таблицу пакетов и справочник документов, но такая реляция уже громоздка.

Ответить | Правка | Наверх | Cообщить модератору

2. "MySQL сложный поиск в группах с ИЛИ  "  +/
Сообщение от Павел Самсонов (?), 27-Мрт-15, 17:00 
>[оверквотинг удален]
>> AND doc2 != 'tk' AND doc3 != 'tk'
>> а потом ещё раз проверять (для каждого банка), чтобы у этого банка
>> _во всех_ пакетах не было тк
>> а ещё для каждого документа так делать надо
>> топорно, мягко говоря..
> Таблица banks с полем packet, объединенная таблица documents с полями packet,document.
> Select document from documents where packet = 'packet1'  дает состав документов
> пакета
> Select bank from banks, documents where banks.packet=documents.packet and documents.document!='tk',
> Дает банки без tk в пакете

Лажа, дает развертку документов по банку, я не знаю как, извини.
> Ну тут еще важно как ты у персоны документ хранишь. Можно разделить
> таблицу документов на таблицу пакетов и справочник документов, но такая реляция
> уже громоздка.

Ответить | Правка | Наверх | Cообщить модератору

3. "MySQL сложный поиск в группах с ИЛИ  "  +/
Сообщение от greenwar (ok), 27-Мрт-15, 17:03 
> Ну тут еще важно как ты у персоны документ хранишь

у клиента это
tk=0/1
ну ещё есть транспортное средство год выпуска например...
регион прописки
пздц в общем набор головняков

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

4. "MySQL сложный поиск в группах с ИЛИ  "  +/
Сообщение от Павел Самсонов (?), 27-Мрт-15, 17:06 
>[оверквотинг удален]
>> а ещё для каждого документа так делать надо
>> топорно, мягко говоря..
> Таблица banks с полем packet, объединенная таблица documents с полями packet,document.
> Select document from documents where packet = 'packet1'  дает состав документов
> пакета
> Select bank from banks, documents where banks.packet=documents.packet and documents.document!='tk',
> Дает банки без tk в пакете
> Ну тут еще важно как ты у персоны документ хранишь. Можно разделить
> таблицу документов на таблицу пакетов и справочник документов, но такая реляция
> уже громоздка.

Но прямое условие выбрать банки, требующие tk будет работать.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

5. "MySQL сложный поиск в группах с ИЛИ  "  +/
Сообщение от Павел Самсонов (?), 27-Мрт-15, 17:13 
>[оверквотинг удален]
>> но тогда, если у клиента нет tk, то where doc1 != 'tk'
>> AND doc2 != 'tk' AND doc3 != 'tk'
>> а потом ещё раз проверять (для каждого банка), чтобы у этого банка
>> _во всех_ пакетах не было тк
>> а ещё для каждого документа так делать надо
>> топорно, мягко говоря..
> Таблица banks с полем packet, объединенная таблица documents с полями packet,document.
> Select document from documents where packet = 'packet1'  дает состав документов
> пакета
> Select bank from banks, documents where banks.packet=documents.packet and documents.document!='tk',

Вот я тебе написал, только != заменить на =. Этот селект из этих таблиц дает банки требующие тк
> Дает банки без tk в пакете
> Ну тут еще важно как ты у персоны документ хранишь. Можно разделить
> таблицу документов на таблицу пакетов и справочник документов, но такая реляция
> уже громоздка.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

7. "MySQL сложный поиск в группах с ИЛИ  "  +/
Сообщение от greenwar (ok), 27-Мрт-15, 17:53 
> Таблица banks с полем packet, объединенная таблица documents с полями packet,document.
> Select document from documents where packet = 'packet1'  дает состав документов
> пакета
> Select bank from banks, documents where banks.packet=documents.packet and documents.document!='tk',
> Дает банки без tk в пакете

вот так придётся для каждого документа делать, а их там ~20

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру