2012-11-12 7 views
0

Что это лучший способ выйти замуж вместе этот вопрос:Лучший способ объединить два запроса вместе

SELECT apvr.LIMIT, apvr.APPROVER_ID, usr.IS_ACTIVE, usr.USER_FULL_NAME   
FROM APPROVERS apvr, USER usr 
WHERE apvr.APPROVER_ID = usr.ID 

и это одна:

SELECT usr.USER_FULL_NAME, COUNT(*) as numOfApprovals, MAX(APPROVAL_DATE) as lastApprovalDate  
FROM IM_APPROVAL_DETAIL appd, USER usr 
WHERE usr.ID = appd.APPROVER_ID 
GROUP By usr.USER_FULL_NAME 

?

+2

вы должны быть более конкретным, вы можете использовать UNION или РЕГИСТРИРУЙТЕСЬ – jcho360

+0

Является 'USER' один из ваших таблиц? Это зарезервированное ключевое слово в 'MySQL'. – sp00m

ответ

0

без реальных данных может быть немного трудно, но мое предложение было бы следующее:

SELECT apvr.LIMIT, apvr.APPROVER_ID, usr.IS_ACTIVE, usr.USER_FULL_NAME, count(*) as numOfApprovals, max(appd.approval_date) as lastApprovalDate 
FROM APPROVERS apvr 
JOIN USER usr ON apvr.APPROVER_ID = usr.ID 
JOIN IM_APPROVAL_DETAIL appd ON usr.ID = appd.APPROVER_ID 
GROUP By apvr.Approver_ID; 

, так как я не в курсе reoccurances в этих таблицах могут быть некоторые проблемы, с группой по статье , Таким образом, альтернативы можно было бы использовать суб-выбора:

SELECT apvr.LIMIT, apvr.APPROVER_ID, usr.IS_ACTIVE, usr.USER_FULL_NAME, appd.numOfApprovals, appd.lastApprovalDate 
FROM APPROVERS apvr 
JOIN USER usr ON apvr.APPROVER_ID = usr.ID 
JOIN IM_APPROVAL_DETAIL appd 
JOIN (
    SELECT approver_id id, count(*) numOfApprovals, max(approval_date) lastApprovalDate 
    FROM im_approval_detail 
    GROUP by id) appd 
ON appd.id = usr.ID 
Смежные вопросы