имя выхода вместо идентификатора

0

Я пытаюсь понять, сколько времени требуется для устранения ошибки, основанной на области, в которой он влияет. Мой результирующий набор выглядит так:

 areaid       Average Resolution/Closure Time (days)
    1            425.57929613
    2            510.00435347
    3            342.90670739

Я хочу заменить значения области именем области, а не номером id. Имя области находится в другой таблице (таблица области). таблица, в которой я выполняю код, называется таблицей ошибок. Так вот что я хочу.

 area_name     Average Resolution/Closure Time (days)
  ABC            425.57929613
  DEF            510.00435347
  GHI            342.90670739

Таблица площадей выглядит так:

 areaid          area_name   
    1            ABC
    2            DEF
    3            GHI

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

SELECT area, AVG(TIMESTAMPDIFF (second, Opened, GREATEST(COALESCE(Resolved , Closed), COALESCE(Closed, Resolved)))) /86400 AS "Average Resolution/Closure Time (days)"
FROM bug
WHERE Resolved IS NOT NULL AND Closed IS NOT NULL 
AND Title <> "test"
GROUP BY area
  • 0
    у вашей второй таблицы есть идентификатор области? на каком основании можно сказать, что область 1 принадлежит «ABC» или «DEF» или другим?
  • 0
    @SMA вторая таблица имеет идентификатор области, я исправил вопрос, чтобы включить образец таблицы области.
Показать ещё 4 комментария
Теги:

1 ответ

0

Вы присоедините таблицу ошибок к [ReferenceTable] в идентификаторе имени области, затем выберите псевдоним rt.areaName из соединения:

    SELECT 
    ar.area_name as Area,
 AVG(TIMESTAMPDIFF (second, Opened, GREATEST(COALESCE(Resolved , Closed), COALESCE(Closed, Resolved)))) /86400 AS "Average Resolution/Closure Time (days)"
    FROM bug as bg
    JOIN Area as ar
    on bg.areaid = ar.areaid
    WHERE Resolved IS NOT NULL AND Closed IS NOT NULL 
    AND Title <> "test"
    GROUP BY ar.areaName
  • 0
    MySQL использует обратные метки, а не квадратные скобки, вокруг имен. Квадратные скобки предназначены для SQL-сервера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню