如果字段中存在一个值,请不要返回任何记录?

时间:2015-03-20 15:52:54

标签: sql

我有以下记录:

ID  FIRST   LAST    CATEGORY
123 Tom     Smith   Teacher
123 Tom     Smith   Tutor
345 Julia   Brown   Banker
345 Julia   Brown   Tutor
567 Dan     Davids  Fireman
567 Dan     Davids  Golfer
567 Dan     Davids  Painter

我想要排除所有包含“Tutor'作为一种价值。 我想要的输出是这样的:

ID  FIRST   LAST    CATEGORY
567 Dan     Davids  Fireman
567 Dan     Davids  Golfer
567 Dan     Davids  Painter

我该怎么做?

名称来自NAMES表,类别来自CATEGORY表。主键是ID字段。

3 个答案:

答案 0 :(得分:0)

使用SELECT和JOIN以及WHERE子句排除' Tutor'值。 您没有足够好地描述您的架构以便我提供确切的查询,因此您可能需要更改一些命名,但这是理念:

SELECT names.id, `first`, `last`, category 
FROM names JOIN category on names.category_fk = category.id
WHERE category.category != 'Tutor';

答案 1 :(得分:0)

SELECT id, first, last, category FROM names WHERE
ID NOT IN (SELECT id FROM names where category = 'Tutor')

答案 2 :(得分:0)

对表结构做一些假设看起来像这样:

SELECT 
 [Name].[ID]
,[Name].[first]
,[Name].[Last]
,[Category].[Category]
FROM
 [Name]
INNER JOIN [Category]
ON [Category].[Category]
=  [Name].[Category]
AND [Category].[Category]<>'Tutor'