2013-03-05 3 views
1

У меня есть 6 таблиц, содержащих информацию о студентах. Все они имеют одинаковые имена столбцов, но с разными данными. Итак, вопрос заключается в том, как сделать доклад студенческой демографии по семестру Академическим колледжем, охватывающим шестилетний период? Не могли бы вы использовать левые соединения для этого типа вопроса? Я попытался использовать внутреннее соединение, но это не сработало. Фактически, это то, что я сделал:SQL-сервер, соединяющий более одной таблицы

SELECT DOB, SEX, RACE, MAJORCOLLEGE 

FROM MasterFile2006 

Join MasterFile2007 ON MasterFile2006.HOMEID = MasterFile2007.HOMEID 

Join MasterFile2008 ON MasterFile2006.HOMEID = MasterFile2008.HOMEID 

Join MasterFile2009 ON MasterFile2006.HOMEID = MasterFile2009.HOMEID 

Join MasterFile2010 ON MasterFile2006.HOMEID = MasterFile2010.HOMEID 

Join MasterFile2011 ON MasterFile2006.HOMEID = MasterFile2011.HOMEID 

Я был бы очень признателен за вашу помощь!

+0

соединения являются для «объединения» соответствующие данные вместе, как правило, из нескольких таблиц с различными полями (за исключением на или более клавиш для фразы ON.) См пшениц ответ. –

+0

О да, извините, я печатал до этого –

+0

Поскольку плакат присоединился к нам сегодня: [Как принимается ответ?] (Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer -work) –

ответ

4

Используйте UNION:

SELECT DOB, SEX, RACE, MAJORCOLLEGE, '2006' as [Year] FROM MasterFile2006 
UNION ALL 
SELECT DOB, SEX, RACE, MAJORCOLLEGE, '2007' as [Year] FROM MasterFile2007 
UNION ALL 
SELECT DOB, SEX, RACE, MAJORCOLLEGE, '2008' as [Year] FROM MasterFile2008 
UNION ALL 
SELECT DOB, SEX, RACE, MAJORCOLLEGE, '2009' as [Year] FROM MasterFile2009 
UNION ALL 
SELECT DOB, SEX, RACE, MAJORCOLLEGE, '2010' as [Year] FROM MasterFile2010 
UNION ALL 
SELECT DOB, SEX, RACE, MAJORCOLLEGE, '2011' as [Year] FROM MasterFile2011 

Примечание: UNION ALL не отбрасывает дубликаты (и не должно быть любым), UNION выполняет DISTINCT и отбрасывает повторяющиеся строки.

+0

Большое спасибо! это действительно полезно. – user2134610

1

Необходимо использовать UNION ALL или UNION. Используйте UNION, если вам нужны DISTINCT записей.

SELECT DOB, SEX, RACE, MAJORCOLLEGE FROM MasterFile2006 
UNION 
SELECT DOB, SEX, RACE, MAJORCOLLEGE FROM MasterFile2007 
UNION 
SELECT DOB, SEX, RACE, MAJORCOLLEGE FROM MasterFile2008 
UNION 
SELECT DOB, SEX, RACE, MAJORCOLLEGE FROM MasterFile2009 
UNION 
SELECT DOB, SEX, RACE, MAJORCOLLEGE FROM MasterFile2010 
UNION 
SELECT DOB, SEX, RACE, MAJORCOLLEGE FROM MasterFile2011 
+0

+1 для указания разницы b/w union и union all –

+0

@Praveen Nambiar: через 5 минут кажется немного запоздалым. –

+0

@MitchWheat +1 к вам и сэр. –

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