久しぶりの潜伏者、初めてのポスター。私はしばらくこのプロジェクトに取り組んできましたが、レンガの壁にぶつかっているようです。クエリの同等性に関する投稿を多数見てきましたが、該当するものはありません。この時点で、SQL でこれを行うことができるのか、それとも重い作業を行うためにプログラムを作成する必要があるのか 疑問に思っています。とにかく、ここに行きます:
ラボ A とラボ B の 2 つのラボがあり、両方とも大要 (包括的なテスト リスト) を持っています。各ラボの注文コード表、各ラボの結果表、および各ラボの注文から結果への表を作成することにより、大要をできる限り正規化しようとしました。
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