MySQL: действительно ли возможно СОЕДИНИТЬ результаты ГРУППЫ-BY'd с два, ВЫБИРАЕТ?

VAX (Virtual Address eXtented Digital Equipment Corp, которая стала Compaq, которая стала HP) является очень хорошим примером виртуальной встроенной аппаратной системы. Это был 32-битный мини-компьютер с ОС под названием VMS или Virtual Memory Systems. Дейв Катлер был одним из главных архитекторов систем, и он намного позже написал Kernal для Windows NT. Он очень хорошо читает это и другие вещи. У Vax было специальное оборудование для управления виртуальным пространством и контроля доступа кода операции для обеспечения безопасности с помощью оборудования ... очень безопасно. Эта система была или является дедушкой современного ПК на уровне Kernal. Первый BSOD, который я увидел в WNT 3.51, я смог прочитать, потому что он пришел из аварийного дампа, используемого в VMS для остановки системы в нестабильном состоянии. Кстати, посмотрите на названия VMS и WNT, и вы найдете следующие буквы в алфавите от VMS, что делает термин WNT. Это был не несчастный случай. возможно, удар в DEC за то, что он отпустил его.

6
задан DarkSquid 17 June 2009 в 05:06
поделиться

3 ответа

Это работает

select * from (
    (select 1 a,2 b,3 c) t1 left join (select null a,2 b,5 c) t2 on (t1.b=t2.b)
);

В качестве альтернативы,

select * from (
    (select 1 a,2 b,3 c) t1 left join (select null a,2 b,5 c) t2 using (b)
);

Оба результата приводят к

+---+---+---+------+---+---+
| a | b | c | a    | b | c |
+---+---+---+------+---+---+
| 1 | 2 | 3 | NULL | 2 | 5 |
+---+---+---+------+---+---+
1 row in set (0.00 sec)
5
ответ дан 10 December 2019 в 00:43
поделиться

Есть несколько способов добиться этого:

  1. Лучшее: объединить таблицы ДО группировки следующим образом:
    ВЫБРАТЬ ax, y, z, n, o
     ОТ ВНУТРЕННЕГО СОЕДИНЕНИЯ b НА ax = bx
     ГРУППА ПО ax, bx;
    
  2. Выберите один из двух запросов в качестве подзапросов, например:
    ВЫБРАТЬ *
    ИЗ (ВЫБРАТЬ x, y, z ИЗ ГРУППЫ ПО x) КАК a
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБЕРИТЕ x, n, o ИЗ b GROUP BY x) КАК b
     ВКЛ ax = bx;
    
4
ответ дан 10 December 2019 в 00:43
поделиться

Вы также можете использовать этот запрос:
SELECT ax, ay, az, bx, bo, bn FROM a, (ВЫБЕРИТЕ x, n, o FROM b GROUP BY x) как b ГДЕ ax = bx ГРУППА ПО топору;

1
ответ дан 10 December 2019 в 00:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: