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

В таблице «Followup» у меня 281 строка, И таблица «billing» содержит 2098 строк. Когда я выполняю этот запрос, я получаю 481 строку.

Кто-нибудь сталкивался с подобными проблемами? Не могли бы вы помочь мне пересечь эти таблицы?

Заранее спасибо ..

1
задан Venkat 17 August 2010 в 10:26
поделиться

2 ответа

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

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
ответ дан 2 September 2019 в 22:06
поделиться

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

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

ORDER BY b.SubscriberID

к приведенному выше ответу Йохена Юнга и согласитесь, что у вас правильное количество строк. в качестве альтернативы

GROUP BY b.SubscriberID

даст вам одну строку для каждого покупателя

1
ответ дан 2 September 2019 в 22:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: