2016-10-11 2 views
-1

Я использую Mysql.выберите столбцы, имеющие только один тип группы (mysql)

У меня есть две таблицы, содержащие информацию о листе Excel.

Первая таблица содержит информацию, как sheetID, CreatedBy, dateOfCreation документа.

Вторая таблица содержит данные каждого Excel лист: sheetID, ColName, colType.

Лист может иметь несколько colName.

colType может быть A, B или C.

sheetID связана друг с другом с помощью внешнего ключа.

Пример:

ТАБЛИЦА 1:

1 ABC.XLS GAURAV 
2 XYZ.XLS FOOBAR 
3 QWE.XLS FOO 
4 QZXC.XLS BAR 

ТАБЛИЦА 2:

1 name A 
1 place A 
1 amount B 
1 link C 
2 name A 
2 website C 
3 name A 
4 home A 
4 name A 
4 fname A 

мне нужно написать запрос, который возвращает все те листы, которые имеют только один тип данных, ,

Как в этом примере sheetId 4 имеет только данные типа «A».

Редактировать 1: Решение, предлагаемое scaisEdge, сработало.

Может ли этот запрос быть расширен, чтобы найти лист, который имеет все 3 типа столбцов. Как и в приведенном выше примере sheetId 1 имеет все три типа.

+0

я был в состоянии получить типы, которые присутствуют в каждом листе ВЫБРАТЬ sheetID, colType FROM 'table2' объединение table1 B ON a.'sheetID' = b.sheetID' GROUP BY sheetID, colType. Я могу узнать, как подсчитать, имеет ли лист более одного типа –

ответ

0

Вы можете использовать не в sublect

select t1.* 
from table_1 t1 
inner join table_2 t2 on t1.sheetDI = t2.sheetID 
where t2.sheetID not in (select distinct sheetID from table_2 
          where coltype <>'A') 
and t2.colType = 'A' 
Смежные вопросы