mysql - 如何在 Mysql 中检索匹配和不匹配的记录?
问题描述
我正在尝试检索 mysql 中的匹配和不匹配记录。
center_wise_test_rates:
lab_id category_name test_id test_name rate
------ ------------- -------- --------- ------
2 Cardiology 9 Blood Sug 1200
2 Cardiology 10 Total Cholesterol 1500
2 Cardiology 11 HDL 1100
2 Cardiology 12 LDL 750
test_list
test_id category_name test_name
------- ------------- ---------
9 Cardiology Blood Sug
10 Cardiology Total Cholesterol
11 Cardiology HDL
12 Cardiology LDL
57 Cardiology abc
从基于 category_name 和 lab_id 的 center_wise_test_rates 和 test_list 表中,匹配的记录将得到但不匹配的记录,即没有得到测试名称“abc”。
我的查询:
SELECT cwtr.lab_id
,cwtr.category_name
,cwtr.test_id
,cwtr.test_name
,cwtr.rate
FROM `center_wise_test_rates` AS cwtr
LEFT OUTER JOIN test_list AS tl ON tl.category_name = (SELECT DISTINCT category_name
FROM center_wise_test_rates
WHERE category_name='Cardiology')
AND tl.test_id = cwtr.test_id
WHERE cwtr.lab_id = '2'
AND cwtr.category_name = 'Cardiology'
输出:
lab_id category_name test_id test_name rate
------ ------------ -------- --------- ----
2 Cardiology 9 Blood Sug 1200
2 Cardiology 10 Total Cholesterol 1500
2 Cardiology 11 HDL 1100
2 Cardiology 12 LDL 750
预期输出:
lab_id category_name test_id test_name rate
------ ------------- -------- --------- ----
2 Cardiology 9 Blood Sug 1200
2 Cardiology 10 Total Cholesterol 1500
2 Cardiology 11 HDL 1100
2 Cardiology 12 LDL 750
2 Cardiology 57 abc Null
提前致谢。
解决方案
它将从 TABLE1 中选择条件匹配与否的所有值。
SELECT coulmn1, column2 FROM TABLE1 LEFT JOIN TABLE2 ON TABLE1.ID= TABLE2.ID WHERE NAME = 'ABC'
推荐阅读
- java - 如何从 Spring 上已定义的响应中生成自定义消息
- javascript - 正则表达式,替换所有匹配项,但一次
- javascript - 使用 Javascript 实时将字符串从多个文本字段转换为 slug
- reactjs - 我的 makeStyle Materiel UI 中的样式规则不起作用
- ocaml - 该文件没有正确的幻数
- javascript - 如何将组件的值传递给其父级?
- react-native - 滚动 react-native 时如何隐藏/显示粘性标题
- python - Fernet Cryptography 解密给出无效的令牌
- python - python joblib返回`TypeError:无法使用相同的代码腌制'weakref'对象,但输入数据不同
- java - 错误:java.lang.ClassCastException:java.lang.String 无法转换为 com.example.animeguide.AnimeListOne