Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуйста как выбрать все поля таблицы @Sensors, и значения из @SensorValue, если там таковые имеются. Получается получить только поля, у которых есть значение. А нужны все поля. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. в результат нужно вывести названия всех датчиков, независимо, есть у него значение или нет. если нет, то выводить NULL или пустую строку. Нужно, чтобы получился вот такой результат: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2018, 02:43 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
SELECT, LEFT OUTER JOIN, ORDER BY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2018, 09:18 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2018, 10:53 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
Владимир Затуливетер, большое вам спасибо! Работало, пока не пришлось усложнить условия. Просьба ещё раз взглянуть и посоветовать решение. В первой таблице перечислены датчики определённых механизмов. У каждого механизма есть свой набор датчиков: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. а во второй таблице содержатся значения и номера наборов этих значений. теперь я хочу получить значения набора данных №2 (SetID=2) всех датчиков механизма №1 (Mechanism=1), делаю такое условие: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. а в ответ: Код: plaintext 1. а как добиться, чтобы выводились все датчики этого механизма, даже если по каким-либо из них нет значения Код: plaintext 1. 2. 3. или же, если условие такое: where v.SetID = 2 and s.mechanism = 2 то такой результат: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2018, 16:31 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
palladin600, перенесите условия, накладываемые на поля правой таблицы LEFT JOINа из WHERE в ON. В данном случае Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2018, 16:42 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
iap, что ничего не клеится, уже всякие джойны перепробовал, выдаёт не то что надо Код: sql 1. 2. 3. 4. 5. 6. 7. 8. выдаёт: Код: plaintext 1. 2. а нужно: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2018, 17:34 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
palladin600, Думать нужно, а не гадать Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2018, 18:27 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
invmpalladin600, Думать нужно, а не гадать Ну это я с удовольствием. А когда не выходит, то что поделать... Вот и в вашем совете-примере, если поставить условие s.mechanism = 1, то выдаст почему-то задвоенные данные. Код: plaintext 1. 2. 3. 4. как отфильтровать? сделал так: Код: sql 1. 2. 3. 4. 5. 6. 7. работает, но тогда, если поставить фильтр SetID = 2, то выдаёт результаты странные: Код: plaintext 1. 2. а нужно: Код: plaintext 1. 2. 3. Спасибо большое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2018, 19:43 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
palladin600если поставить условие s.mechanism = 1, то выдаст почему-то задвоенные данные.Потому что в @SensorValue две строки для "Датчик 3". Сервер не умеет читать ваши мысли. А вы, пока что, не можете внятно сформулировать задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2018, 20:10 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
Сорри, что запарил уже, Извините, вот по полочкам разложу. Есть устройства (mechanism), у которых есть свои наборы датчиков (sensors). И есть таблица, в которой содержатся настройки этих датчиков. Нужно получить набор значений датчиков для определённого устройства. Т.е., предположим, что есть Устройство1, у которого прописано 3 датчика: Датчик1-3. К этому устройству есть также готовый набор значений (SetID) для датчиков. Я хочу выбрать определённое устройство, и посмотреть значения по выбранному набору настроек. Если разбирать последовательно задачу, то я должен вначале получить список всех датчиков интересующего меня устройства из таблицы @Sensors, где: Код: plaintext 1. 2. 3. затем, я получаю значения конкретного набора значений для датчиков этого устройства из таблицы @SensorValue, где: Код: plaintext 1. 2. и сопоставляю эти значения с датчиками устройства: Код: vbnet 1. 2. 3. 4. 5. 6. (цикл приведён примитивный, для наглядности) в итоге, я получаю картину, что для Устройства1: Код: plaintext 1. 2. если выставить условие SetID = 2, то получим уже другой набор значений датчиков для устройства (Mechnanism = 1) Код: plaintext 1. 2. и, если бы я ввёл несуществующй набор, скажем SetID = 3, то в ответ бы получил просто список датчиков с отсутсвующими значениями: Код: plaintext 1. 2. 3. Может двумя запросами это можно сделать, но список датчиков должен быть всегда, независимо, есть набор значений или же нету. Или же, может перенести/добавить нужно поле какое-то в таблицу, чтобы по-правильному, как говорится. Ну вот в общем, такие дела. Конечно, можно двумя запросами делать, и потом городить на клиенте цикл с сопоставлениями, но так хочется по-грамотному через t-sql реализовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2018, 01:27 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
Вникни в понятие Derived Table. Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2018, 07:06 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
ну или то же самое без cte Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2018, 08:08 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
Посетительну или то же самое без cte Код: sql 1. 2. 3. 4. 5. 6. Не учи плохому. Без СТЕ надо так Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2018, 08:31 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
aleks222Посетительну или то же самое без cte Код: sql 1. 2. 3. 4. 5. 6. Не учи плохому. Без СТЕ надо так Код: sql 1. 2. 3. 4. 5. слушаюсь и повинуюсь, о мой господин! или нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2018, 08:36 |
|
||
|
Выборка всех полей основной таблицы, даже если нет значений у вспомогательной
|
|||
|---|---|---|---|
|
#18+
Друзья, большое спасибо! Заскрипело приложеньице-то! Все три варианта решений от 'aleks222' и 'Посетитель' выдали то, что нужно. И с СТЕ и без. Спасибо за квалифицированную помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2018, 11:05 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39689866&tid=1689244]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 367ms |

| 0 / 0 |
