SQL запрос в SQLite - страница 5

 

Еще появился вопрос

Есть две таблицы в базе

В первой таблице, как правило, 1 или 2 записи

Во второй таблице много записей.

Как составить запрос на создание новой таблицы, которая будет построена

из 5 столбцов 2-ой таблицы (sess_id, isin_id, short_isin, isin, name) но выборка из 2-ой

таблицы должна осуществляться на основе БОЛЬШЕГО sess_id первой таблицы ?

 
prostotrader #:

Еще появился вопрос

Есть две таблицы в базе

В первой таблице, как правило, 1 или 2 записи

Во второй таблице много записей.

Как составить запрос на создание новой таблицы, которая будет построена

из 5 столбцов 2-ой таблицы (sess_id, isin_id, short_isin, isin, name) но выборка из 2-ой

таблицы должна осуществляться на основе БОЛЬШЕГО sess_id первой таблицы ?


С помощью ЛЕВОГО СОЕДИНЕНИЯ.
Гуглите "левое соединение sql" либо "left join sql"
 
prostotrader #:

Еще появился вопрос

Есть две таблицы в базе

В первой таблице, как правило, 1 или 2 записи

Во второй таблице много записей.

Как составить запрос на создание новой таблицы, которая будет построена

из 5 столбцов 2-ой таблицы (sess_id, isin_id, short_isin, isin, name) но выборка из 2-ой

таблицы должна осуществляться на основе БОЛЬШЕГО sess_id первой таблицы ?



select
 T2.sess_id,
 T2.isin_id, 
 T2.short_isin,
 T2.isin, 
 T2.name
From table1  as T1
Left join table2   as T2
On T1.sess_id = T2.sess_id

Вместо table1 и table2
Вставьте название ваших таблиц.

В первой таблице судя по всему сессии, либо одна либо две разные. Во второй таблице вероятно инструменты.
При этом sess_is всегда уникален , верно ?

тогда запрос выберет из таблицы2 все инструменты привязанные к сессии  sess_id из первой талицы.

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

Отсюда вопрос, а что нужно получить на выходе , только записи по конкретно одной сесии ? соответвенно по первой записи ?




 
Yuriy Zaytsev #:


select
 T2.sess_id,
 T2.isin_id, 
 T2.short_isin,
 T2.isin, 
 T2.name
From table1  as T1
Left join table2   as T2
On T1.sess_id = T2.sess_id

Вместо table1 и table2
Вставьте название ваших таблиц.

В первой таблице судя по всему сессии, либо одна либо две разные. Во второй таблице вероятно инструменты.
При этом sess_is всегда уникален , верно ?

тогда запрос выберет из таблицы2 все инструменты привязанные к сессии  sess_id из первой талицы.

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

Отсюда вопрос, а что нужно получить на выходе , только записи по конкретно одной сесии ? соответвенно по первой записи ?




Добрый день!

Я же конкретно написал 

"... выборка из 2-ой таблицы должна осуществляться на основе БОЛЬШЕГО sess_id первой таблицы 

"

 
prostotrader #:

Добрый день!

Я же конкретно написал 

"... выборка из 2-ой таблицы должна осуществляться на основе БОЛЬШЕГО sess_id первой таблицы 

"

 Такое ощущение, что Вы ещё и претензии предъявляете. 🤪
 
Выбирайте запросом максимальное значение и делайте левое соединение по этому значению.
 
Sergey Gridnev #:
 Такое ощущение, что Вы ещё и претензии предъявляете. 🤪

Странные у Вас ощущения...

 
prostotrader #:

Странные у Вас ощущения...

Да уж какие возникли, про такие и написал.
Взгляд со стороны, так сказать.
 

Здесь https://www.sqlite.org/lang_createtable.html

все написано, кок создать такую таблицу, но я никак не могу разобраться ....:(

 
prostotrader #:

Добрый день!

Я же конкретно написал 

"... выборка из 2-ой таблицы должна осуществляться на основе БОЛЬШЕГО sess_id первой таблицы 

"

тогда можно сделать так , и все взлетит.

select
 T2.sess_id,
 T2.isin_id, 
 T2.short_isin,
 T2.isin, 
 T2.name
From table1  as T1
Left join table2   as T2
On T1.sess_id = T2.sess_id

where  T1.sess_id = (Select MAX( TmaxSess_id.sess_id ) from table1 as TmaxSess_id  )