簡體   English   中英

MySQL存儲過程重復問題

[英]MySQL Stored Procedure Dupplication Issue

我希望有人能幫幫忙。 我創建了此存儲過程以從不同的表中提取一些信息,而當我對其進行調整時,我得到了很多重復項,我想知道是否存在一種對它進行排序的方法?

use ICA
if exists(
    select *
    from INFORMATION_SCHEMA.ROUTINES
    where SPECIFIC_SCHEMA = N'ICASchema'
    and SPECIFIC_NAME = N'candidateOffer'
    )
    drop procedure ICASchema.candidateOffer
go

create procedure ICASchema.candidateOffer @candidateID INT
    as
begin

select c.CandidateID,c.CandidateName, ca.CourseID, co.CourseName, o.OfferID, ot.OfferTypePoints
    from [ICASchema].[tblCandidate] c 
    join [ICASchema].[tblCandidateOffer] o on c.CandidateID = o.CandidateID
    join [ICASchema].[tblOffer] ot on o.offerID = ot.OfferType
    join [ICASchema].[tblCandidateApplication] ca on ca.CourseID = ca.CourseID
    join [ICASchema].[tblCourse] co on co.CourseName = co.CourseName
    where c.CandidateID = @candidateID
    --ORDER BY co.CourseName
    GROUP BY  co.CourseName, c.CandidateID,c.CandidateName, ca.CourseID, o.OfferID, ot.OfferTypePoints
end
go

謝謝

格雷厄姆

嘗試這個:

select * from (select distinct c.CandidateID,c.CandidateName, ca.CourseID, co.CourseName, o.OfferID, ot.OfferTypePoints
    from [ICASchema].[tblCandidate] c 
    join [ICASchema].[tblCandidateOffer] o on c.CandidateID = o.CandidateID
    join [ICASchema].[tblOffer] ot on o.offerID = ot.OfferType
    join [ICASchema].[tblCandidateApplication] ca on ca.CourseID = ca.CourseID
    join [ICASchema].[tblCourse] co on co.CourseName = co.CourseName
    where c.CandidateID = @candidateID

    GROUP BY  co.CourseName, c.CandidateID,c.CandidateName, ca.CourseID, o.OfferID, ot.OfferTypePoints) tablealias order by CourseName

下面的示例用於創建一個簡單的Proc_GetAllUsers存儲過程。 這將解決您的重復問題。

如果存在Proc_GetAllUsers GO,則刪除程序

創建過程Proc_GetAllUsers()開始

-您的SQL查詢選擇* FROM用戶;

結束

這是可行的解決方案。

[代碼]從ICASchema.tblCandidate AS中選擇​​c.CandidateID,c.CandidateName,ICASchema.tblOffer.OfferTypePoints,ICASchema.tblCourse.CourseName。 ICASchema.tblCandidateOffer.CandidateOfferID = ICASchema.tblOffer.OfferID內部聯接ICASchema.tblCourse ON ICASchema.tblOffer.OfferID = ICASchema.tblCourse.OfferTypeID WHERE(c.CandidateID ='3')[/ code]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM