2009-06-03 17 views
2

Ich habe eine zusammengeführte Tabelle von mehreren Gewerkschaften und ich möchte wissen, aus welchen dieser Tabellen die Ergebnisse genommen wurden, ist das möglich?fusionierte SQL-Tabellennamen

Beispiel ...

select name von den Benutzern, wo Namen wie '% alex%' union select name from admins where name like '% alex%';

Würde zurückkehren sagen wir zwei Zeilen, Alexander und Alexandra. Alexander ist ein Administrator und Alexandra ist ein Benutzer. Wie kann ich sie unterscheiden?

Antwort

9
SELECT 
    Name, 
    'Users' AS Type 
FROM users 
WHERE name LIKE '%alex%' 
UNION 
SELECT 
    Name, 
    'Admins' AS Type 
FROM admins 
WHERE name LIKE'%alex%' 
+0

Obwohl ich wahrscheinlich Vereinigung verwenden würde, alle in diesem Fall identifizieren können becasue Sie keine Duplikate Ausfiltern werden zwischen Gewerkschaften sowieso. – HLGEM

+0

In meinem speziellen Fall sind Duplikate kein Problem, es ist keine Frage von Namen, ich dachte nur, das wäre ein einfacherer Weg, mein Problem zu beschreiben. – doug

2

Fügen Sie eine virtuelle Spalte in Ihrem wählen, dass Sie die Quelltabelle

select name, 'Name' as Source from users where name like '%alex%' 
union select name, 'Admins' as Source from admins where name like '%alex%'; 
Verwandte Themen