MySQL中的INTERSECT 2表

时间:2010-08-17 10:26:41

标签: mysql intersection

  

我需要交叉两个表   在一个列上,在两个表中。

这是我的代码段:

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

在'followup'表中,我有281行,'billing'表包含2098行。当我执行此查询时,我得到了481行。

有没有人面临这类问题? 你能帮助我交换这些表吗?

提前完成..

2 个答案:

答案 0 :(得分: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

这也会从'billing'表中返回'followup'表中没有相应字段的行。

答案 1 :(得分:1)

在我看来,你很可能会有多次跟进。因此,备注表中的481条记录可能是准确的。

也许添加

ORDER BY b.SubscriberID

到JochenJung上面的回答并接受你有正确的行数。

GROUP BY b.SubscriberID

每个客户会给你一行