Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / SQLite Новый топик    Ответить
 Получение результирующей таблицы из трех.  [new]
пыхтачек
Member

Откуда:
Сообщений: 6
Добрый день.

Помогите plz.

Пусть будет, есть 3 таблицы.
1. Таблица. ID, Город, Тип знака, Расположение.

CREATE TABLE `data_sign` (
id` INTEGER NOT NULL UNIQUE,
`City` TEXT NOT NULL,
`Sign type` TEXT NOT NULL,
`Location` TEXT
);

2. ID, Город, Тип люка, Расположение.
CREATE TABLE `data_hatch` (
`id` INTEGER NOT NULL UNIQUE,
`City` TEXT NOT NULL,
`Hatch type` TEXT NOT NULL,
`Location` TEXT
);
3. ID, Город, Тип фонаря, Расположение.

CREATE TABLE `data_post` (
`id` INTEGER NOT NULL UNIQUE,
`City` TEXT NOT NULL,
`Post type` TEXT NOT NULL,
`Location` TEXT
);

Что нужно. Нужно вывести таблицу с следующими колонками

Город | Общее кол.во знаков | Общее кол.во люков | Общее кол.во фонарей

Если у города нет фонарей, писать просто 0

Как по одному выводить ясно и понятно, как вывести что бы из трех таблиц да еще в одном запросе не ясно.

Заранее спасибо.
10 июн 19, 16:01    [21906024]     Ответить | Цитировать Сообщить модератору
 Re: Получение результирующей таблицы из трех.  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7659
UNION ALL
10 июн 19, 16:18    [21906037]     Ответить | Цитировать Сообщить модератору
 Re: Получение результирующей таблицы из трех.  [new]
пыхтачек
Member

Откуда:
Сообщений: 6
Не получается, делал так
SELECT City, COUNT(City) AS  post, 0 AS sign, 0 AS hatch  FROM data_post 
UNION ALL
SELECT City, 0 AS  post, COUNT(City) AS sign, 0 AS hatch  FROM data_sign 
UNION ALL
SELECT City, 0 AS  post, 0 AS sign, COUNT(City) AS hatch FROM data_hatch GROUP BY City


Выдает ерунду

К сообщению приложен файл. Размер - 32Kb
10 июн 19, 17:21    [21906095]     Ответить | Цитировать Сообщить модератору
 Re: Получение результирующей таблицы из трех.  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7659
Сам на SQL Lite не проверял (но I-net увреяет SQL Lite поддерживает вложенные запросы)

Считать нужно после union all

select city, sum(post) as sum_post, sum(signals) as sum_signals, sum(hatch) as sum_hutch from
(
  select city as city, 1 as post, 0 as signals, 0 as hatch from data_post 
  union all
  select city as city, 0 as post, 1 as signals, 0 as hatch from data_sign
  union all
  select city as city, 0 as post, 0 as signals, 1 as hatch from data_hatch
) tt
group by city


IMHO & AFAIK
10 июн 19, 18:56    [21906151]     Ответить | Цитировать Сообщить модератору
 Re: Получение результирующей таблицы из трех.  [new]
пыхтачек
Member

Откуда:
Сообщений: 6
Leonid Kudryavtsev,

Заработало, надо почитать по вложенные запросы. К сожалению поверхностно знаком с TSQL.

Спасибо большое =)
10 июн 19, 19:52    [21906180]     Ответить | Цитировать Сообщить модератору
 Re: Получение результирующей таблицы из трех.  [new]
White Owl
Member

Откуда:
Сообщений: 12370
пыхтачек
Leonid Kudryavtsev,

Заработало, надо почитать по вложенные запросы. К сожалению поверхностно знаком с TSQL.

Спасибо большое =)
SQLite не использует TSQL.
Диалект использующийся в SQLite' так и называется SQLite.
12 июн 19, 02:30    [21907127]     Ответить | Цитировать Сообщить модератору
Все форумы / SQLite Ответить