2015-05-11 3 views
0

Таблица устройств:конкретное имя в пределах одной и той же таблицы (MySQL)

Name: Router1 
Type: NODE 
Class: Main 

Name: Router1 
Type: IF 
Class: T1 0/0/1 

Name: Router1 
Type: IF 
Class: Fa 0/1 

выше минимальный пример.

Выход я хочу это:

Router1 | T1 0/0/1, Fa 0/1 

Возможно ли это без создания временных таблиц, процедуру или сценарий?

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

+0

You условием является группой их по типу «IF»? –

ответ

2

Вы можете использовать GROUP_CONCAT на классе колонки в то время как группа их по имени

SELECT Name, GROUP_CONCAT(class) 
FROM devices 
GROUP BY Name 
WHERE Type= 'IF' 
/*WHERE Name = 'Router_1'*/ 
+0

Невозможно сделать это для каждого устройства в базе данных? Я знаю, что вы можете так поступать, но скажите, что есть 100 устройств со всеми разными IF? Я устал подзапросом. –

+0

Теперь это будет работать для всех тестов generllay, я обновил ответ @KirsKringle –

+0

Человек, который у меня был, но без GROUP BY, и у меня был мой мозг, что со мной не так. Я не могу поверить, что не мог думать об этом. Спасибо. –

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