代码之家  ›  专栏  ›  技术社区  ›  Venkat

在MySQL中相交两个表

  •  1
  • Venkat  · 技术社区  · 14 年前

    我需要 两个表相交 在两个表中的列上。

    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 回复  |  直到 14 年前
        1
  •  2
  •   JochenJung    14 年前

    我认为您喜欢在这里执行左连接(而不是您的示例中的内部连接):

    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”表中没有相应字段的行。

        2
  •  1
  •   Alex C    14 年前

    也许再加一个

    ORDER BY b.SubscriberID
    

    接受上面的JochenJung的回答,并接受您的行数是正确的。

    GROUP BY b.SubscriberID
    

    会给每个顾客一排吗