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 за то, что он отпустил его.
Это работает
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)
Есть несколько способов добиться этого:
ВЫБРАТЬ ax, y, z, n, o ОТ ВНУТРЕННЕГО СОЕДИНЕНИЯ b НА ax = bx ГРУППА ПО ax, bx;
ВЫБРАТЬ * ИЗ (ВЫБРАТЬ x, y, z ИЗ ГРУППЫ ПО x) КАК a ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБЕРИТЕ x, n, o ИЗ b GROUP BY x) КАК b ВКЛ ax = bx;
Вы также можете использовать этот запрос:
SELECT ax, ay, az, bx, bo, bn
FROM a, (ВЫБЕРИТЕ x, n, o FROM b GROUP BY x) как b
ГДЕ ax = bx
ГРУППА ПО топору;