从多个表中获取数据

2023-11-29

医学硕士

       MedicalID MedicalName
       1(pk)     abc
       2         xyx
       3         pqr

儿童医学硕士

       ChildMID MedicalID Station Name
       1(pk)    1(fk)     bnb     mfk
       2        1         def     rwr
       3        2         re      wrw      

医疗_就诊

       VTID  PMID  RFMID age
       1(pk) 2(fk) 1      34
       2     2     3      45
       3     3     1      45
       4     1     2      44
       5     2     2      76

医学_研究

       UID   VTID  ChildMID SMID   Date  time 
       1(pk) 1(fk) 1        1      kk    jdj
       2     2     3        2      kdf   lfl
       6     3     2        3      rgr   rtr

博士_硕士

       RFMID  Doctorname
       1(pk)  mr.john
       2      mr.jack
       3      mr.jim

患者主控

       PMID   Firstname LastNAme
       1(pk)  df         ere
       2      rwe        rwer
       3      rwr        fwr

学习_硕士

       SMID   MedicalID Description Duration
       1(pk)  1(fk)     fdf         efe
       2      1         ddf         dfdf
       3      2         df          ef

我想要表中的这些列,我的正确查询应该如何?

UID,PMID,FIRSTNAME,LASTNAME,AGE,MEDICALNAME,DESCRIPTION,STATION,DATE,DoctorName

我在 7 个表上使用了内部联接,但没有获得正确的数据。(医生姓名重复)


虽然我不确切知道您想要的最终结果是什么,但下面的查询和解释可能有助于解决您的问题。拥有额外的样本数据和您想要的结果样本会很有帮助,但这是我的尝试。

我从一个较小的查询开始,并尝试添加表。第一个查询,这不会为您提供大量数据,但会为您提供ChildMID, MedicalId and Station为您的最终产品。你需要ChildMID and MedicalId加入更多桌子。 (SQL小提琴):

SELECT *
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
  ON mm.MedicalID = cmm.MedicalId

下一个表我添加了Medical_Study表连接上ChildMID您刚刚从之前的加入中获得的信息。这将为您带来UID在你的最终产品中(SQL小提琴).

SELECT *
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
  ON mm.MedicalID = cmm.MedicalId
INNER JOIN Medical_Study ms
  ON cmm.ChildMID = ms.ChildMID

在下一次加入中我添加了Study_Master桌子。在这里,我做了一些稍微不同的事情,我在两个单独的字段上加入了表。对于这个查询,我加入了SMID字段来验证该研究是否正确,但我也加入了MedicalID字段以确保它使用正确的医疗记录。 (看SQL小提琴)如果您没有加入这两个字段,那么您将为表中的每一项获得一条记录Medical_Study但您似乎想要与研究和医疗相匹配的项目。

SELECT *
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
  ON mm.MedicalID = cmm.MedicalId
INNER JOIN Medical_Study ms
  ON cmm.ChildMID = ms.ChildMID
INNER JOIN Study_Master sm
  ON ms.SMID = sm.SMID
  AND mm.MedicalID = sm.MedicalID  -- results change if you remove this line

下一个查询稍微容易一些,因为您要添加Medical_VisitPatient_Master. (SQL小提琴)

SELECT *
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
  ON mm.MedicalID = cmm.MedicalId
INNER JOIN Medical_Study ms
  ON cmm.ChildMID = ms.ChildMID
INNER JOIN Study_Master sm
  ON ms.SMID = sm.SMID
  AND mm.MedicalID = sm.MedicalID
INNER JOIN Medical_Visit mv
  ON ms.VTID = mv.VTID
INNER JOIN Patient_Master pm
  ON mv.PMID = pm.PMID

最终要添加的表是Doctor_Master这将为您提供医生的名字。 (SQL小提琴)使用添加之前提供的示例数据Doctor_Master表中有一条记录,但最终有 3 条记录。这是因为PMID在某个时候看过所有 3 位医生。

SELECT *
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
  ON mm.MedicalID = cmm.MedicalId
INNER JOIN Medical_Study ms
  ON cmm.ChildMID = ms.ChildMID
INNER JOIN Study_Master sm
  ON ms.SMID = sm.SMID
  AND mm.MedicalID = sm.MedicalID
INNER JOIN Medical_Visit mv
  ON ms.VTID = mv.VTID
INNER JOIN Patient_Master pm
  ON mv.PMID = pm.PMID
INNER JOIN Doctor_Master dm
  ON mv.RFMID = dm.RFMID

删除最终查询不需要的所有字段是:

SELECT ms.UID,
    pm.PMID,
    pm.firstname,
    pm.lastname,
    mv.age,
    mm.medicalname,
    sm.description,
    cmm.station,
    ms.[date],
    dm.doctorname
FROM Medical_Master mm
INNER JOIN Child_medical_Master cmm
    ON mm.MedicalID = cmm.MedicalId
INNER JOIN Medical_Study ms
    ON cmm.ChildMID = ms.ChildMID
INNER JOIN Study_Master sm
    ON ms.SMID = sm.SMID
    AND mm.MedicalID = sm.MedicalID
INNER JOIN Medical_Visit mv
    ON ms.VTID = mv.VTID
INNER JOIN Patient_Master pm
    ON mv.PMID = pm.PMID
INNER JOIN Doctor_Master dm
    ON mv.RFMID = dm.RFMID

我认为这会产生您正在寻找的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从多个表中获取数据 的相关文章

随机推荐

  • INSERT INTO 语句中的语法错误

    当我连接 Access 数据库时遇到问题 然后我在 INSERT INTO 语句中收到错误语法错误 我的代码是 string str Provider Microsoft ACE OLEDB 12 0 Data Source C Users
  • pandas 和 Stata 13 个文件

    我安装了 pandas 0 13 1 但是pandas read stata 无法阅读 dta以 Stata 13 格式创建的文件 出现错误 TypeError cannot concatenate str and NoneType obj
  • 如何将 stdin 上的输入发送到 Makefile 中定义的 python 脚本?

    鉴于这个问题的答案 在 Makefile 中嵌入 Python 以设置 make 变量这有效 define NEWLINE endef define PYTHON SCRIPT CODE import sys print hi endef
  • 通过分号分隔从单个查询中删除多个表

    我正在尝试从 sqlite 的单个操作中删除多个表 我尝试用分号分隔它 但它没有按预期工作 这是我当前的代码 NSString query DELETE from Friends DELETE from Stream DELETE from
  • PHP 获取活动会话

    我试图回显过去 15 分钟内处于活动状态的每个活动会话 我使用以下代码进行检查以记录其上次查看时间 SESSION last seen date Y m d H i s 但是在执行以下代码 即本文上方的代码 时 我收到这些错误 注意 未定义
  • R CMD 安装错误:test_load_package() 函数中出现意外符号

    Issue 我只是想从源代码构建一些包 但遇到了错误 错误 tools test load package rbenchmark per homedrive1 corp something org homedrive Tommy O Del
  • 选择范围中的单元格,直到行为空

    我有一个电子表格 始终从 A 列到 I 列 但行数的范围可能会有所不同 我想选择范围 A1 I20000 中的所有单元格 直到 A 列中的第一个空白单元格 因此如果数据以 202 结尾 它将停止选择第 202 行处的行 我尝试编写自己的公式
  • 更改 Div 样式 onclick

    我在页面顶部有 2 个选项卡 单击一个选项卡时 我希望该选项卡具有 活动 类 而另一个选项卡具有 非活动 类 以便用户可以看到当前选择的选项卡 我怎样才能用 javascript css 来做到这一点 div class tabActive
  • 如何在word中创建报告生成器

    我目前正在尝试制作它 以便我可以加载Word模板并提示填写数据 然后将这些数据填充到Word文档中 该报告有两个主要部分 概览中的第一个 系统将自动计算摘要 第二部分是摘要 其中将附加数据 在 Word 中生成报告的方法有多种 每种方法都有
  • WebBrowser 控件 - 控制台应用程序 - 事件未触发

    我一直在浏览各种WebBrowser控制stackoverflow问题 而且我似乎无法找到我遇到的问题的答案 我正在尝试使用用于打印网页的 WebBrowser 控件 下列的MSDN 的例子 我创建了以下控制台应用程序 namespace
  • 来自 Google 电子表格的电子邮件中的图表图像与 google-apps-script 返回白色图像

    我每天晚上都会向我自己的 Gmail 地址发送一份报告 大约一周后 图表的图像突然变成了空白 只有一张图表 function sendReport var ss SpreadsheetApp getActiveSpreadsheet var
  • 当参数是函数参数包时,在部分排序期间推导模板实参

    N4527 14 8 2 4 温度扣除部分 3 用于确定排序的类型取决于完成部分排序的上下文 3 1 在函数调用的上下文中 使用的类型是函数调用具有参数的函数参数类型 3 2 在调用转换函数的上下文中 使用转换函数模板的返回类型 3 3 在
  • 如何在 TypeScript 中将一种泛型类型的结构复制到另一种泛型?

    假设我们有以下输入类型 interface Input name string heightCm number dob Date 我想编写一个函数 可以根据此输入生成以下输出类型 interface Output name boolean
  • Flex 项目在换行时应左对齐,而不是居中

    我的网站移动菜单底部有一个基于 Flex 的无序社交媒体图标列表 我试图让三人并排坐着 间隔相等 我已经按照规则解决了这个问题 justify content space around but 我的问题是 当超过三个项目时 下一行开始从中心
  • 在shopify中编写自定义搜索应用程序

    我需要在 Shopify 中实现我们自己的自定义产品搜索 但我一直无法找到具体的操作方法 我不是在谈论显示搜索结果的模板 而是我们需要编写自定义代码来准确决定哪些产品应显示在搜索页面上及其顺序 我可以看到有很多应用程序提供自定义搜索结果 顺
  • 更新 .NET Core 工具

    我正在尝试使用 电子邮件受保护 为了在这一点上做到这一点 我已经有了 安装了 Visual Studio 2019 预览版 安装了 NET Core 3 1运行时 安装了 NET Core 3 1 SDK 现在我仍然无法运行命令dotnet
  • R[写入控制台]:gettext(fmt,domain = domain,trim = trim)中的错误:3个参数传递给.Internal(gettext),需要2个

    我想在python中使用R函数 我在python中安装了rpy2 当我想加载函数 from rpy2 import robjects 时 我面临以下错误 R 写入控制台 gettext fmt domain domain trim trim
  • MapOverlay 绑定不起作用

    我正在尝试使用 MVVM 代码结构在 Windows Phone 8 上运行地图叠加 我似乎无法将 MapOverlay 的 GeoCoordinate 属性正确绑定到我的 ViewModel 而且我不知道为什么 目前的 XAML 是 He
  • 在jqGrid中,是否可以使用Ajax来获取custom_element的数据?

    我正在做某事类似于这个问题我有一个复选框列表作为自定义编辑控件 不同之处在于我想从服务器获取我的列表 而不是在客户端上硬编码 检查1 检查2 检查3 有什么方法可以在列设置或在自定义元素功能 看来我需要类似的东西dataUrl您用于选择项目
  • 从多个表中获取数据

    医学硕士 MedicalID MedicalName 1 pk abc 2 xyx 3 pqr 儿童医学硕士 ChildMID MedicalID Station Name 1 pk 1 fk bnb mfk 2 1 def rwr 3 2