Как объединить эти два запроса в 1? Оба используют две разные базы данных, но все они находятся на одном сервере. Я бы использовал суб-выбор или объединение здесь?MySQL несколько запросов из нескольких баз данных
Я в основном хотел бы что-то вроде, чтобы отобразить следующее:
User name | Total A | Total B
jon 5 3
tim 4 2
sarah 3 1
Вот запросы:
Первый запрос:
SELECT
U.USR_USERNAME AS `User Name`,
COUNT(rp_workflow.PIG.APP_UID) AS 'Total A'
FROM
rp_workflow.PMT_INSP_GRID PIG
JOIN
rp_workflow.PMT_INSP_NORMAL PIN
ON PIG.APP_UID = PIN.APP_UID
JOIN
wf_workflow.USERS U
ON PIN.USR_UID_ORDER = U.USR_UID
GROUP BY
U.USR_USERNAME
Второй запрос:
SELECT
U.USR_USERNAME AS `User Name`,
COUNT(rp_workflow.PIQG.APP_UID) AS 'Total B'
FROM
rp_workflow.PMT_INSP_QC_GRID PIQG
JOIN
rp_workflow.PMT_INSP_NORMAL PIN
ON PIQG.APP_UID = PIN.APP_UID
JOIN
wf_workflow.USERS U
ON PIN.USR_UID_QC = U.USR_UID
WHERE
PIN.APP_STATUS = 'Completed'
GROUP BY
U.USR_USERNAME
Редактировать: попробовал подзапрос, но в итоге он отобразил только сумму всех значений для второго запроса. Почувствуйте, что я рядом, но также все больше запутался.
SELECT
U.USR_USERNAME AS `User Name`,
COUNT(rp_workflow.PIG.APP_UID) AS 'Total A',
(SELECT
COUNT(rp_workflow.PIQG.APP_UID)
FROM
rp_workflow.PMT_INSP_QC_GRID PIQG
JOIN
rp_workflow.PMT_INSP_NORMAL PIN
ON PIQG.APP_UID = PIN.APP_UID
JOIN
wf_workflow.USERS U
ON PIN.USR_UID_QC = U.USR_UID
WHERE
PIN.APP_STATUS = 'Completed') AS 'Total B'
FROM
rp_workflow.PMT_INSP_GRID PIG
JOIN
rp_workflow.PMT_INSP_NORMAL PIN
ON PIG.APP_UID = PIN.APP_UID
JOIN
wf_workflow.USERS U
ON PIN.USR_UID_ORDER = U.USR_UID
GROUP BY
U.USR_USERNAME
Что отображается:
User name | Total A | Total B
jon 5 6
Edit 2: * В USR_UID нет в таблицах PIG или PIQG поэтому они должны быть присоединены к таблицам PIN. Оттуда, имя пользователя может быть получен
попробовал этот запрос, но в конечном итоге получить неизвестную ошибку колонки:
SELECT wf_workflow.U.USR_USERNAME AS `User Name` ,
(SELECT count(PIG.APP_UID)
FROM rp_workflow.PMT_INSP_GRID PIG
JOIN rp_workflow.PMT_INSP_NORMAL PIN ON PIG.APP_UID = PIN.APP_UID
AND PIN.USR_UID_ORDER = U.USR_UID) AS 'Total A',
(SELECT count(PIQG.APP_UID)
FROM rp_workflow.PMT_INSP_QC_GRID PIQG
JOIN rp_workflow.PMT_INSP_NORMAL PIN2 ON PIQG.APP_UID = PIN2.APP_UID
AND PIN2.USR_UID_ORDER = wf_workflow.U.USR_UID
WHERE PIN2.APP_STATUS = 'Completed') AS 'Total B'
FROM wf_workflow.USERS U
Попробуйте поместить имя базы данных непосредственно перед именем таблицы, как это. - '[Db Name]. [Имя таблицы]' –
@MikeBrant Я попробовал подзапрос, но он отобразил только сумму всех значений для второго запроса. см. первый пост – justWired