INTERSECT 2 таблицы в MySQL - PullRequest
       2

INTERSECT 2 таблицы в MySQL

1 голос
/ 17 августа 2010

Мне нужно пересечь две таблицы на основе в столбце, в обеих таблицах.

Вот мой фрагмент кода:

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 ]

1 голос
/ 17 августа 2010

Мне кажется, что у вас, скорее всего, будет многократное наблюдение.Таким образом, 481 запись из таблицы заметок, вероятно, является точной.

Возможно, добавьте

ORDER BY b.SubscriberID

к ответу JochenJung выше и примите правильное количество строк.поочередно

GROUP BY b.SubscriberID

даст вам по одной строке на клиента

1 голос
/ 17 августа 2010

Я думаю, что вы хотели бы сделать здесь левое соединение (не внутреннее соединение, как в вашем примере):

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

Это также вернет строки из таблицы «биллинга», которые неполя в таблице «продолжение».

...