powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Запрос SELECT. Выборка по трём таблицам с сокращением одинаковых результатов.
3 сообщений из 3, страница 1 из 1
Запрос SELECT. Выборка по трём таблицам с сокращением одинаковых результатов.
    #37184729
hardir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такая база. Четыре таблицы:
CREATE TABLE ttnsp (id INTEGER PRIMARY KEY, ttn TEXT, date NUMERIC;[/li]

CREATE TABLE ttn (id INTEGER PRIMARY KEY, idsp NUMERIC, naim TEXT, sn TEXT, kolvo NUMERIC, stoim NUMERIC, OPTnadb NUMERIC, OPTcena NUMERIC, NDS NUMERIC, SummaNDS NUMERIC, ItogoSNDS NUMERIC, RoznNadb NUMERIC, SummaNadb NUMERIC, Cena NUMERIC, RoznCena NUMERIC, vsego NUMERIC;[/li]

CREATE TABLE sklad (idttn NUMERIC, idttnsp NUMERIC, naim TEXT, ostatok NUMERIC, dopinf TEXT, status NUMERIC;[/li]

CREATE TABLE serial (id INTEGER PRIMARY KEY, idttn NUMERIC, ser TEXT, status NUMERIC, dopinf TEXT;[/li]

Делаю такой запрос
Код: plaintext
SELECT sklad.idttn,ttnsp.ttn,ttnsp.date,sklad.naim,ttn.sn, ttn.kolvo,sklad.ostatok,ttn.rozncena,sklad.status,sklad.dopinf FROM sklad,ttn, ttnsp WHERE  ttn.id=sklad.idttn AND sklad.idttnsp=ttnsp.id AND ttnsp.ttn LIKE % 123 %
и получаю список товара у которых ТТН содержит "123".

Чего мне такого дописать в этот запрос, чтобы этот список содержал ещё и товар, в серийных номерах которого есть цифры "321"?
Серийники в таблице serial. id уникальный idttn выводит на таблицу с наименованием товара (таблица ttn).

Выборку из serial осуществляю запросом:
Код: plaintext
SELECT DISTINCT idttn  FROM serial WHERE ser LIKE % 321 %
Получаю список idttn в которых присутствует в серийнике запись "321". Как мне эти запросы "скрестить" (соединить)? Чтобы всё было в одном запросе. Ато уже 3 дня мозг напрягаю а пока чё-то не придумаю.
...
Рейтинг: 0 / 0
Запрос SELECT. Выборка по трём таблицам с сокращением одинаковых результатов.
    #37184802
hardir,

Код: plaintext
 ... AND (ttnsp.ttn LIKE '%123%' OR ttnsp.ttn LIKE '%321%')
...
Рейтинг: 0 / 0
Запрос SELECT. Выборка по трём таблицам с сокращением одинаковых результатов.
    #37184958
hardir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ!
Дочитал книжку до след. главы (300 страница) и обнаружил, что запросы можно объединять. Потому в данном случае я второй запрос представил как множество и запихал его в перный, получилось что-то типа:
Код: plaintext
SELECT sklad.idttn,ttnsp.ttn,ttnsp.date,sklad.naim,ttn.sn, ttn.kolvo,sklad.ostatok,ttn.rozncena,sklad.status,sklad.dopinf FROM sklad,ttn, ttnsp WHERE  ttn.id=sklad.idttn AND sklad.idttnsp=ttnsp.id AND ttnsp.ttn LIKE % 123 % AND sklad.idttn IN (SELECT DISTINCT idttn  FROM serial WHERE ser LIKE % 321 %)
Всё элементарно и просто!
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Запрос SELECT. Выборка по трём таблицам с сокращением одинаковых результатов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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