2010-08-17 41 views
1

我需要基於 在列相交兩個表,這兩個表英寸INTERSECT 2個表中的MySQL

這裏是我的代碼片段:

SELECT b.VisitID, b.CarrierName, b.PhoneNum, b.PatientName, b.SubscriberID, b.SubscriberName, 
     b.ChartNum, b.DoB, b.SubscriberEmp, b.ServiceDate, b.ProviderName, b.CPTCode, b.AgingDate, 
     b.BalanceAmt, f.FollowUpNote, f.InternalStatusCode FROM billing b JOIN followup f 
     USING (VisitID) WHERE b.VisitID = f.VisitID 

在「後續」表我有281行「結算」表包含2098行。當我執行這個查詢時,我得到了481行。

有沒有人遇到過這種問題? 你能幫我交叉這些表嗎?

感謝名單提前..

+1

在我看來,你在同一個VisitID值的「結算」表中的「後續」相匹配的多個記錄,有一些記錄table ...我想你需要在兩個表格之間找到一些可以幫助你過濾結果的其他常見信息 – shil88 2010-08-17 10:52:25

+0

要擴展shil88的評論,如果你使用哪個「重複」行沒有關係,你可以使用「GROUP BY」子句。或者,您可以在表定義中使用'UNIQUE'關鍵字來防止發生重複的'VisitID'。 – 2010-08-17 11:07:01

回答

1

我覺得你喜歡做左連接在這裏(不是內部在你的榜樣加入爲):

SELECT b.VisitID, b.CarrierName, b.PhoneNum, b.PatientName, 
    b.SubscriberID, b.SubscriberName, b.ChartNum, b.DoB, 
    b.SubscriberEmp, b.ServiceDate, b.ProviderName, b.CPTCode, 
    b.AgingDate, b.BalanceAmt, 
    f.FollowUpNote, f.InternalStatusCode 
FROM billing b 
LEFT JOIN followup f ON b.VisitID = f.VisitID 

這也將從「計費返回行'表'在'後續'表中沒有相應的字段。

1

在我看來,你很可能會有多次跟進。因此,筆記表中的481條記錄可能是準確的。

也許添加

ORDER BY b.SubscriberID 

到JochenJung的回答以上,並接受你的行權數量。 交替地

GROUP BY b.SubscriberID 

會給你每個客戶一行