2010-10-20 7 views
2

J'ai deux tables comme suit:MYSQL - Concaténer deux tables

TABLE A     TABLE B 
StuID | actid    FacID | actid 
    3  12     98  17 
    5  17     54  21 

Je veux indiquer le nom de tout le monde, les étudiants et les professeurs qui participent à des activités 17. Y at-il de toute façon je peux obtenir un résultat comme ci-dessous:

id | actid 
98  17 
5  17 

SANS créer une nouvelle table (en utilisant simplement l'imbrication d'expressions ou de relations dérivées)?

JOIN sur la ActID donnerait quelque chose comme:

StuID | FacID | actid 
5  98  17 

Je suppose que je besoin d'une forme de concaténation ??

+1

Cette forme de concaténation est appelée UNION dans SQL et Thilo a la bonne réponse, ci-dessous (vous devriez accepte cette réponse, donc Thilo obtient un crédit). –

Répondre

14
select * from table_a where actid = 17 
union all 
select * from table_b where actid = 17 

Vous pouvez (ou non) ont besoin de faire quelque chose au sujet des ids ne pas être unique, comme

select 'Student', table_a.* from table_a where actid = 17 
union all 
select 'Faculty', table_b.* from table_b where actid = 17 
+0

J'ai dû emballer chaque SELECT dans() pour que MySQL soit content. –

0

Vous voulez UNION ALL:

(SELECT * FROM TableA) UNION ALL (SELECT * FROM tableb)

Je pense que ces parenthese sont corrects. Je me souviens que MySQL était pointilleux à ce sujet.

-2

Vous pouvez concaténer ces deux tableaux en utilisant select, from et where.

+0

S'il vous plaît être un peu plus précis. SELECT FROM et WHERE sont trop génériques pour être marqués comme une réponse utile. –

0

son trop facile select tableA.stuId,tableA.actId, tableB.facId,tableB.actId de tableA, tableB où tableA.actid = tableB.actid; `