- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
长期潜伏者,第一次海报。我已经在这个项目上工作了一段时间,但似乎遇到了困难。我浏览了大量有关查询等效性的帖子,但没有一个适用。此时我想知道我是否可以在 SQL 中执行此操作,或者我是否需要编写一个程序来完成繁重的工作。无论如何,事情就是这样:
我有两个实验室,实验室 A 和实验室 B,它们都有纲要(综合测试列表)。我试图通过为每个实验室创建一个顺序代码表、每个实验室的结果表以及每个实验室的顺序结果表来尽我所能标准化概要。
Lab A
LabA_Order_Codes
LabA_Order_Code LabA_Order_Desc
000455 Thyroid Panel
000620 Thyroid Panel with TSH
...
999706 ECG Tracing/Computer Analysis
LabA_Order_Result_Code_Id LabA_Order_Code LabA_Result_Code
1 000455 001149
2 000455 001156
3 000455 001164
4 000620 004264
5 000620 001149
6 000620 001156
7 000620 001164
...
19495 999706 999706
LabA_Result_Codes
LabA_Result_Code LabA_Result_Desc LabA_Result_LOINC
001149 Thyroxine (T4) 3026-2
001156 T3 Uptake 3050-2
001164 Free Thyroxine Index 32215-6
...
004264 TSH 11579-0
...
999706 ECG Interpretation 11524-6
Lab B
LabB_Order_Codes
LabB_Order_Code LabB_Order_Desc
7020 Thyroid Panel
7444 Thyroid Panel with TSH
...
95594 Retest Phenobarbital
LabB_Order_Result_Code_Id LabB_Order_Code LabB_Result_Code
...
10780 7020 55075100
10781 7020 55075200
10782 7020 55075300
...
20579 7444 55075100
20580 7444 55075200
20581 7444 55075300
20582 7444 55075400
...
19495 95594 99950100
LabB_Result_Codes
LabB_Result_Code LabB_Result_Desc LabB_Result_LOINC
55075100 Thyroxine (T4) 3026-2
55075200 T3 Uptake 3050-2
55075300 Free Thyroxine Index 32215-6
55075400 TSH 11579-0
...
99950100 Phenobarbital 11524-6
我想要完成的是填充一个单独的表,当 LOINC 代码相同时(这表明正在执行相同的测试),该表派生订单代码。如果 LOINC“指纹”是唯一的,则该行中其他实验室的订单代码为空,但常见的“指纹”都位于同一行。因此,当 LOINC 代码 3026-2、3050-2 和 32215-6 一起出现时,实验室 A 和实验室 B 的条目及其各自的订单代码应位于同一行中。很抱歉条目很长,但我想彻底解释一下!
以防万一,我正在使用 MySQL 5.6,这对任何人都很重要。
Target Table
Test_Id Test_Desc LabA_Order_Code LabB_Order_Code
1 Thyroid Panel 000455 7020
2 Thyroid Panel w/TSH 000620 7444
...
3490 ECG Interpretation 999706 null
...
4210 Retest Phenobarbital null 95594
最佳答案
理解你在寻找什么有点困难,但我会尝试一下。
听起来您应该将其分成几遍。
我将您的 LOINC 视为业务 key (在两个来源上都是唯一的)。因此,如果您将 LOINC 添加到目标表,您可以在每个源上执行插入/更新过程。
第一次通过:(更新 LAB A 中的现有内容) 从 LabA 获取 LOINC 和 Order_Code 的唯一列表(查询)INNER JOIN 到您现有的目标表(位于 loinc)并UPDATE LabA 的 Test_Desc、Order_Code。
第二遍:(插入来自 LAB A 的新内容) 从 LabA 获取 LOINC 和 Order_Code 的唯一列表(查询)LEFT JOIN 到目标表(位于 loinc)和 INSERT 新行(LabA 为 null)其中 TARGET.Test_id 为 null
第三遍:(更新实验室 B 中的现有内容) 从 LabB 获取 LOINC 和 Order_Code 的唯一列表(查询)INNER JOIN 到您现有的目标表(位于 loinc)并UPDATE LabB 的 Test_Desc、Order_Code。
第四遍:(插入来自 LAB A 的新内容) 从 LabB 获取 LOINC 和 Order_Code 的唯一列表(查询)LEFT JOIN 到目标表(位于 loinc)和 INSERT 新行(LabB 为 null)其中 TARGET.Test_id 为 null
您应该能够将整个过程放入一个存储过程中,然后您可以调用该存储过程,它会为您完成这一切。
如果您有兴趣,如果您想了解更多相关信息,这是一个更新插入过程。
关于mysql - 从查询结果集中创建新表行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19275383/
猫f1.txt阿曼维沙尔阿杰贾伊维杰拉胡尔曼尼什肖比特批评塔夫林现在输出应该符合上面给定的条件 最佳答案 您可以在文件读取循环中设置一个计数器并打印它, 计数=0 读取行时做 让我们数一数++ if
我正在尝试查找文件 1 和文件 2 中的共同行。如果公共(public)行存在,我想写入文件 2 中的行,否则打印文件 1 中的非公共(public)行。fin1 和 fin2 是这里的文件句柄。它读
我有这个 SQL 脚本: CREATE TABLE `table_1` ( `IDTable_1` int(11) NOT NULL, PRIMARY KEY (`IDTable_1`) );
我有 512 行要插入到数据库中。我想知道提交多个插入内容是否比提交一个大插入内容有任何优势。例如 1x 512 行插入 -- INSERT INTO mydb.mytable (id, phonen
如何从用户中选择user_id,SUB(row, row - 1),其中user_id=@userid我的表用户,id 为 1、3、4、10、11、23...(不是++) --id---------u
我曾尝试四处寻找解决此问题的最佳方法,但我找不到此类问题的任何先前示例。 我正在构建一个基于超本地化的互联网购物中心,该区域分为大约 3000 个区域。每个区域包含大约 300 个项目。它们是相似的项
preg_match('|phpVersion = (.*)\n|',$wampConfFileContents,$result); $phpVersion = str_replace('"','',
我正在尝试创建一个正则表达式,使用“搜索并替换全部”删除 200 个 txt 文件的第一行和最后 10 行 我尝试 (\s*^(\h*\S.*)){10} 删除包含的前 10 行空白,但效果不佳。 最
下面的代码从数据库中获取我需要的信息,但没有打印出所有信息。首先,我知道它从表中获取了所有正确的信息,因为我已经在 sql Developer 中尝试过查询。 public static void m
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我试图在两个表中插入记录,但出现异常。您能帮我解决这个问题吗? 首先我尝试了下面的代码。 await _testRepository.InsertAsync(test); await _xyzRepo
这个基本的 bootstrap CSS 显示 1 行 4 列: Text Text Text
如果我想从表中检索前 10 行,我将使用以下代码: SELECT * FROM Persons LIMIT 10 我想知道的是如何检索前 10 个结果之后的 10 个结果。 如果我在下面执行这段代码,
今天我开始使用 JexcelApi 并遇到了这个:当您尝试从特定位置获取元素时,不是像您通常期望的那样使用sheet.getCell(row,col),而是使用sheet.getCell(col,ro
我正在尝试在我的网站上开发一个用户个人资料系统,其中包含用户之前发布的 3 个帖子。我可以让它选择前 3 条记录,但它只会显示其中一条。我是不是因为凌晨 2 点就想编码而变得愚蠢? query($q)
我在互联网上寻找答案,但找不到任何答案。 (我可能问错了?)我有一个看起来像这样的表: 我一直在使用查询: SELECT title, date, SUM(money) FROM payments W
我有以下查询,我想从数据库中获取 100 个项目,但 host_id 多次出现在 urls 表中,我想每个 host_id 从该表中最多获取 10 个唯一行。 select * from urls j
我的数据库表中有超过 500 行具有特定日期。 查询特定日期的行。 select * from msgtable where cdate='18/07/2012' 这将返回 500 行。 如何逐行查询
我想使用 sed 从某一行开始打印 n 行、跳过 n 行、打印 n 行等,直到文本文件结束。例如在第 4 行声明,打印 5-9,跳过 10-14,打印 15-19 等 来自文件 1 2 3 4 5 6
我目前正在执行验证过程来检查用户的旧密码,但问题是我无法理解为什么我的查询返回零行,而预期它有 1 行。另一件事是,即使我不将密码文本转换为 md5,哈希密码仍然得到正确的答案,但我不知道为什么会发生
我是一名优秀的程序员,十分优秀!