vs_convoy
@vs_convoy

Как красиво(правильно) написать запрос для следующей задачи(под катом)?

Имеются две таблицы:
Table_A:
______________________
id_class id_subclass
1 1.1
1 1.2
2 2.1
______________________

Table_B:
______________________
Id Parameter
1 A
2 B
1.1 C
1.2 D
2.1 E
_______________________

Надо получить что-то такое:
Id_class Parametr Id_subclass Parameter
1 A 1.1 C
1 A 1.2 D
2 B 2.1 E

Вот мой вариант решения:
WITH T1 AS 
(SELECT Table_A.Id_class, Table_B.Parameter AS Par_1 FROM Table_A JOIN Table_B ON Table_A.Id_class = Table_B.Id), 
T2 AS 
(SELECT Table_A.Id_subclass, Table_A.Id_class, Table_B.Parameter AS Par_2 FROM Table_A JOIN Table_B ON Table_A.Id_subclass = Table_B.Id)

SELECT DISTINCT T1.Id_class, Par_1, T2.Id_subclass, Par_2 FROM 
T1 LEFT JOIN T2
ON T1.Id_class = T2.Id_class;


Можете предложить что-то более лаконичное?
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `a`.`id_class`, `pc`.`Parameter` AS `class_parameter`,
       `a`.`id_subclass`, `ps`.`Parameter` AS `subclass_parameter`
  FROM `Table_A` as `a`
  JOIN `Table_B` as `pc` ON `pc`.`id` = `a`.`id_class`
  JOIN `Table_B` as `ps` ON `ps`.`id` = `a`.`id_subclass`
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы