Size: a a a

2020 April 30

MC

Max Chistyakov in sql_ninja
Звучит так что вы хотите в одном запросе посчитать данные из разных таблиц, но по одинаковом свойству. Пишете три запроса с подсчётом количества по каждой таблице, в запросах поля должны быть одинаковы. Добавляете в каждый запрос столбец в котором может быть1,2,3, в зависимости от того к какой таблице запрос.

А потом все три запроса объединяете UNION
источник

А

Андрій in sql_ninja
🐾Lucius Morgenstern🐾
```
select goods.name
from goods
inner join prices ON prices.id = goods.id
where discount = 10
UNION ALL
select manufactures.name
from manufactures
inner join goods ON goods.manufacturer_id = manufactures.id
inner join prices ON prices.id = goods.id
where discount = 10
UNION ALL
select categories.name
from categories
inner join goods ON goods.category_id = categories.id
inner join prices ON prices.id = goods.id
where discount = 10
```
Не вижу что то тут ордер бай
источник

MC

Max Chistyakov in sql_ninja
🐾Lucius Morgenstern🐾
```
select goods.name
from goods
inner join prices ON prices.id = goods.id
where discount = 10
UNION ALL
select manufactures.name
from manufactures
inner join goods ON goods.manufacturer_id = manufactures.id
inner join prices ON prices.id = goods.id
where discount = 10
UNION ALL
select categories.name
from categories
inner join goods ON goods.category_id = categories.id
inner join prices ON prices.id = goods.id
where discount = 10
```
Прочитал мысли)
Теперь в каждый запрос добавить два поля: подсчет + group by, и наименование таблицы
источник

🐾M

🐾Lucius Morgenstern🐾... in sql_ninja
Андрій
Не вижу что то тут ордер бай
так нет его ибо я не знаю как
источник

🐾M

🐾Lucius Morgenstern🐾... in sql_ninja
Max Chistyakov
Прочитал мысли)
Теперь в каждый запрос добавить два поля: подсчет + group by, и наименование таблицы
щас попробую
источник

А

Андрій in sql_ninja
🐾Lucius Morgenstern🐾
так нет его ибо я не знаю как
Добав еще одно поле 'tableSource'
Оберни все в  сте и отсортируй по второму полю
источник

🐾M

🐾Lucius Morgenstern🐾... in sql_ninja
Max Chistyakov
Прочитал мысли)
Теперь в каждый запрос добавить два поля: подсчет + group by, и наименование таблицы
Попробовал просто груп бай нэйм и сработало)
источник

🐾M

🐾Lucius Morgenstern🐾... in sql_ninja
но вообще я понял как это работает по твоему способу, так что спасибо)
источник

MC

Max Chistyakov in sql_ninja
Kostya
Камрады, вопрос ... я из джейсона забираю строки и вставляю в таблу одним инстертом
Кстати, оцените кто-нить как вам такой сервис для работы с json. Можно конвертить csv в json, можно json в csv. Можно сделать json более красивым.
источник

MC

Max Chistyakov in sql_ninja
Решил ради эксперимента запустить сервис, посмотреть как будет работать, поддерживать его http://jsonconv.tech/
источник

ПЛ

Павел Львов... in sql_ninja
Чего то я завис. Есть две таблицы в одной например просто колонка со значениями 01, 02...10, а во второй таблице первая колонке те-же значения и каждой приписана дата, но например нет записи для значение 03 и 05. Как мне вывести SELECT по двум таблицам чтобы на те записи что отсутствуют он ставил NULL?
источник

IK

Ivan Kuzmin in sql_ninja
left join
источник

ПЛ

Павел Львов... in sql_ninja
Ща уточню, сорри за кривое описание))) В первой таблице имена машин, все значения уникальны, а во второй история обновления этих машин, и записей для каждой машины будет несколько. И я хочу посмотреть по номеру версии на каких машинах она стоит, а где нет
источник

IK

Ivan Kuzmin in sql_ninja
через оконную функцию можно попробовать rownumber() или подзапросами от условия отбора по второй таблице зависит
источник

ПЛ

Павел Львов... in sql_ninja
SELECT A.[Имя_компа], B.[Версия], B.[Дата_установки] FROM [Список_машин] as A LEFT JOIN [История_версий] as B
 ON (A.[Имя_компа] = B.[Имя_компа])
 WHERE B.[Версия] = @Version
 ORDER BY A.[Имя_компа]
источник

ПЛ

Павел Львов... in sql_ninja
Павел Львов
SELECT A.[Имя_компа], B.[Версия], B.[Дата_установки] FROM [Список_машин] as A LEFT JOIN [История_версий] as B
 ON (A.[Имя_компа] = B.[Имя_компа])
 WHERE B.[Версия] = @Version
 ORDER BY A.[Имя_компа]
Вот так он выдаёт только те машины что есть во второй таблице
источник

V

Vosin in sql_ninja
Условие по версии в Джоин перенести
источник

V

Vosin in sql_ninja
или
SELECT A.[Имя_компа], B.[Версия], B.[Дата_установки]
FROM [Список_машин] as A
outer apply (
select top 1 IsUpdated = 1,  B.[Версия], B.[Дата_установки]  
from [История_версий] as B where A.[Имя_компа] = B.[Имя_компа]
)B
ORDER BY A.[Имя_компа]
источник

MC

Max Chistyakov in sql_ninja
LEFT JOIN B + WHERE B.column превращает его в INNER
Если очень хочется условия фильтрации по LEFT JOIN видеть в WHERE, надо писать WHERE B.[Версия] = @Version OR B.[Версия] IS NULL
источник

ПЛ

Павел Львов... in sql_ninja
Vosin
или
SELECT A.[Имя_компа], B.[Версия], B.[Дата_установки]
FROM [Список_машин] as A
outer apply (
select top 1 IsUpdated = 1,  B.[Версия], B.[Дата_установки]  
from [История_версий] as B where A.[Имя_компа] = B.[Имя_компа]
)B
ORDER BY A.[Имя_компа]
Спасибо, ща попробуем
источник