2009-06-03 7 views
2

J'ai une table fusionnée de plusieurs unions et je veux savoir de laquelle de ces tables les résultats ont été pris, est-ce possible?a fusionné les noms de table SQL

exemple ...

select name des utilisateurs où le nom comme '% alex%' union nom select de admins où le nom comme '% alex%';

Revenons disons deux rangs, Alexandre et Alexandra. Alexander est un administrateur et Alexandra est un utilisateur. Comment puis-je leur dire à part?

Répondre

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

Bien que je serais probablement utiliser tous les syndicats dans ce cas becasue vous ne serez pas filtrer les doublons entre syndicats de toute façon. – HLGEM

+0

Dans mon cas particulier, les doublons ne sont pas un problème, ce n'est pas une question de noms que je pensais juste que ce serait un moyen plus facile de décrire mon problème. – doug

2

Inclure une colonne virtuelle dans votre sélection qui vous permettra d'identifier la table source

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