提取没有特定值的行的查询

gajydyqb  于 2021-06-20  发布在  Mysql
关注(0)|答案(6)|浏览(328)

我的数据库中有以下表:

  1. id name source
  2. ------------------------------
  3. 1 John Doe fbs
  4. 2 Clara Wayne fbs
  5. 3 John Doe dem
  6. 4 Markus Clark lp
  7. 5 Markus Clark fbs
  8. 6 John Doe sms

我需要提取这样的东西,在哪里 source 两者都不是 dem 也不是 sms :

  1. id name source
  2. ------------------------------
  3. 2 Clara Wayne fbs
  4. 4 Markus Clark lp
6rvt4ljy

6rvt4ljy1#

我想, John Doe 没有被选为他所属的记录之一 sms 不想包含在结果中的源。

  1. SELECT *
  2. FROM YOUR_TABLE
  3. WHERE name NOT IN (
  4. SELECT name
  5. FROM YOUR_TABLE
  6. WHERE source IN ('dem','sms')
  7. );
hrirmatl

hrirmatl2#

试试这个

  1. SELECT *
  2. FROM yourtable t
  3. WHERE NOT EXISTS (
  4. SELECT 1
  5. FROM yourtable
  6. WHERE id = t.id
  7. AND name = t.name
  8. AND source IN ('dem', 'sms')
  9. )
sdnqo3pr

sdnqo3pr3#

  1. select * from your_table where source != 'dem' and source != 'sms'

另一种方法

s71maibg

s71maibg4#

您可以使用: SELECT Distanct name,source FROM YOUR_TABLE_NAME WHERE SOURCE NOT IN ('DEM', 'SMS')

gg58donl

gg58donl5#

您可以选择如下数据。。。。

  1. SELECT * FROM YOUR_TABLE_NAME WHERE SOURCE NOT IN ('DEM', 'SMS')

或者你可以这样做。。。

  1. SELECT DISTINCT SOURCE, NAME, ID FROM TABLE_NAME T WHERE T.NAME NOT IN (SELECT TOP 1 NAME FROM TABLE_NAME WHERE SOURCE IN('DEM', 'SMS'))
vsikbqxv

vsikbqxv6#

您可以有一个“非期望值”列表,如下所示:

  1. SELECT * FROM yourtable WHERE source NOT IN ('fbs','lp');

相关问题