można zrobić
SELECT *
from members
UNION
SELECT inventory.*, 'dummy1' AS membersCol1, 'dummy2' AS membersCol2
from inventory;
Gdzie membersCol1
, membersCol12
, itp ... to nazwy kolumn z members
, które nie są w inventory
. W ten sposób oba zapytania w unii będą miały te same kolumny (Zakładając, że wszystkie kolumny w inventory
są takie same jak w members
, co wydaje mi się bardzo dziwne ... ale hej, to twój schemat).
UPDATE:
Jak HLGEM podkreślił, będzie to tylko praca jeśli inventory
ma kolumn o takich samych nazwach jak members
, w tej samej kolejności. Nazewnictwo wszystkich kolumn jawnie jest najlepszym pomysłem, ale ponieważ nie znam nazw, nie mogę tego dokładnie zrobić. Jeśli ja, może to wyglądać mniej więcej tak:
SELECT id, name, member_role, member_type
from members
UNION
SELECT id, name, '(dummy for union)' AS member_role, '(dummy for union)' AS member_type
from inventory;
nie lubię przy użyciu NULL dla wartości atrapy bo to nie zawsze jest jasne, jaka część unii rekord pochodził z - używając „manekina” sprawia, że jasne, że zapis pochodzi z części związku, która nie miała tego zapisu (choć czasami może to nie mieć znaczenia). Sam pomysł połączenia tych dwóch tabel wydaje mi się bardzo dziwny, ponieważ bardzo wątpię, że mają one więcej niż 1 lub 2 kolumny o tej samej nazwie, ale zadałeś to pytanie w taki sposób, że wyobrażam sobie w twoim scenariuszu, że w jakiś sposób ma sens.
Dlaczego chcesz połączyć dwie tabele o zupełnie różnych kontekstach? – Joe
Należy nigdy nie używać opcji select * w zapytaniu, które będzie uruchamiane podczas produkcji. Powinieneś zawsze określać tylko te kolumny, które potrzebujesz, zarówno pod względem utrzymania, jak i wydajności. – HLGEM