2015-09-28 1 views
1

У меня есть некоторые беспорядочные данные в текстовых файлах (2 таблицы). Я хотел бы объединить его в 1 таблицу, но есть проблемы с дублированием. Мои данные выглядит следующим образом:объединить две таблицы с частичными отношениями

таблица состояний

+--------------------------+ 
| | Last Name | Status | | 
+--------------------------+ 
| | Jones  | On Time | | 
| | Jones  | On Time | | 
| | Jones  | On Time | | 
| | Jones  | On Time | | 
| | Jones  | Missing | | 
| | Hoinski | On Time | | 
| | Hoinski | Late | | 
| | Hoinski | Late | | 
| | Hoinski | Missing | | 
+--------------------------+ 

таблица рисков

+-------------------------+ 
| | Last Name | Risk | | 
+-------------------------+ 
| | Jones  | High | | 
| | Jones  | High | | 
| | Jones  | Low | | 
| | Jones  | Medium | | 
| | Jones  | Medium | | 
| | Jones  | Medium | | 
| | Jones  | Medium | | 
| | Smith  | Low | | 
| | Smith  | Medium | | 
| | Smith  | Medium | | 
| | Smith  | Medium | | 
| | Hoinski | High | | 
| | Hoinski | High | | 
| | Hoinski | Low | | 
+-------------------------+ 

Как я могу использовать SQL, чтобы объединить эти две таблицы в 1 таблице? Является ли это возможным? Я знаю, что у меня нет правильных отношений (многие для многих), поэтому это не совсем понятно. Но что, если я агрегирую данные с помощью операторов Group By в поле [фамилия]?

+2

Ваш вопрос непонятно мне. Можете ли вы представить ожидаемый результат? –

+0

'mysql' и' sql-server' теги? –

ответ

0

Resolve дублируется с DISTINCT

SELECT Distinct S.[Last Name] , S.Status, R.Risk 
FROM Status S 
INNER JOIN Risk R 
    ON R.[Last Name] = S.[Last Name] 
1

Вы правильно GROUP BY разрешит вашу проблему, вот запрос.

SELECT * FROM Status 
    INNER JOIN Risk ON Status.[Last Name] = Risk.[Last Name] 
    GROUP BY Status.[Last Name] 
+0

'Group by' может решить проблему, но ваш запрос не потому, что вам нужно включить все 3 поля в' group by' и заменить 'select *' для тех же полей. –

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