繁体   English   中英

合并两个不相关的表

[英]Combine Two Unrelated Tables

我从来不需要这样做,它只是为了在asp.net的gridview控件上显示信息。

这是我所拥有的:

SELECT [VisitNumber], [Date], [DateFreq], [Weight], [Fat], [BloodPressure], [Pulse], [Total], [Discount], [NetTotal], [AmountPaid], [PaymentStatus], [TypeOfPayment], [Comments] FROM [tblVisits] WHERE ([PatientID] = '16') 

SELECT [DatePrescribed], [AdditionalSupply], [Medication], [Dose], [Quantity], [Type], [Description], [Expires], [Lot] FROM [tblMedications] WHERE (([PatientID] = '16') AND ([DatePrescribed] = (select top 1 dateprescribed from tblMedications where ([PatientID] = '16') order by DatePrescribed desc))) ORDER BY [DatePrescribed] DESC

有什么方法可以将它们结合起来,也许是对PatientID的完全加入? 我对sql不太好,所以任何想法都将不胜感激。

似乎您希望通过patientID某种SQL连接。

  • 如果只想包含两个表中都有ID的记录,请使用inner join
  • 如果要使用ID为一个表而不是另一个表的所有记录( null ,请使用full outer join
  • 如果要从一个表中获得所有记录,而另一个表没有该ID则使用null ,则请使用leftright outer join

似乎最可能需要inner join ,如下所示:

select v.VisitNumber, v.Date, ..., v.Comments, m.DatePrescribed, m.AdditionalSupply...
from tblVisits as v inner join tblMedication as m
on v.PatientID = m.PatientID;

资源

根据您的评论,您正在尝试根据就诊当天开出的处方药将药物加入就诊。 在这种情况下,您需要加入该信息:

SELECT [tblVisits].[VisitNumber], [tblVisits].[Date], ..., [tblVisits].[Comments],
       [tblMedications].[DatePrescribed], ..., [tblMedications].[Expires], [tblMedications].[Lot]
FROM [tblVisits]
JOIN [tblMedications] ON [tblVisits].[PatientID] = [tblMedications].[PatientID]
                     AND [tblVisits].[Date] = [tblMedications].[DatePrescribed]
WHERE [tblVisits].[PatientID] = '16'
ORDER BY [tblVisits].[Date]

我想提到的是,我认为说这两个表“无关”并不是最好的表述方式。 根据日期,它们对您的应用程序确实具有有意义的关系。 它不是外键形式的明确对象,因为它不是基于密钥的关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM