2010-10-20 6 views
2

у меня есть две таблицы следующим образом:MYSQL - Объединить две таблицы

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

Я хочу перечислить название всех, студентов и преподавателей, которые участвуют в деятельности 17. Есть ли в любом случае я могу получить результат как указано ниже:

id | actid 
98  17 
5  17 

БЕЗ создания новой таблицы (путем использования вложенности выражений или производных отношений)?

объединение на actid бы дать что-то вроде:

StuID | FacID | actid 
5  98  17 

Я предполагаю, что нужна форма конкатенации ??

+1

Эта форма конкатенации называется UNION в SQL, и Тило имеет правильный ответ, ниже (вы должны принимайте этот ответ, чтобы Тило получил кредит). –

ответ

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

Вы можете (или не может) нужно сделать что-то идентификаторы не являются уникальными, такие, как

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

Мне пришлось обернуть каждый SELECT in() для MySQL, чтобы быть счастливым. –

0

Вы хотите UNION ALL:

(SELECT * FROM TABLEA) UNION ALL (SELECT * FROM TableB)

Я думаю, что эти Parenthese являются правильными. Я помню, как MySQL суетился по этому поводу.

-2

Вы можете сцепить эти две таблицы с помощью select, from и where.

+0

Пожалуйста, будьте более конкретными. SELECT FROM и WHERE являются слишком универсальными, чтобы быть помечены как полезный ответ. –

0

его слишком легко select tableA.stuId,tableA.actId, tableB.facId,tableB.actId из TABLEA, TableB где tableA.actid = tableB.actid; `

Смежные вопросы