mysql - 如何在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'

关于mysql - 如何在Mysql中检索匹配和不匹配的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58797193/

相关文章:

php - 如何使用 Select 查询结果(数组)进行新查询并显示每个值的结果?

c# - 不能链接两个表;数据库; Entity Framework C#

mysql - 计算 MySql 中每行的多值属性的值

mysql - 如何获取记录日期明智降序,然后给出sql中没有日期的记录

mysql - 查询生成器中的 Laravel 转义字符

mysql - 如何在多个时间间隔内重复MySQL查询

mysql - Redis作为MySQL引擎?

mysql - 如何从 Rails 3 中的 Stripe gem 捕获 Web hook?

mysql - MediaWiki 1.16.0 - 在 phpmyadmin 中选择当前文章

mysql - 如何添加在同一表中的另一列上递增的列?