使用select查询提取行

时间:2015-05-14 07:38:25

标签: mysql

我有两个问题如下所示。

 SELECT *
 FROM `nhrd_members` B
 WHERE Membership_Number LIKE 'A%'
 AND `Member_FromDate` >= '2014-01-01'
 AND `Member_FromDate` <= '2015-01-01'

产生98行..

 SELECT *
 FROM `nhrd_members` A
 WHERE Membership_Number LIKE 'A%'
 AND `Member_FromDate` >= '2014-01-01'
 AND `Member_FromDate` <= '2014-05-14' 

产生19行。

正如您所看到的,我正在从同一个表中提取数据。现在我需要的实际结果是98-19,即79行。

我需要从查询1中排除查询2的行,并获得81条记录。 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

SELECT *
FROM `nhrd_members` B
WHERE
  Membership_Number LIKE 'A%'
  AND (
    `Member_FromDate` >= '2014-01-01'
    AND `Member_FromDate` <= '2015-01-01'
  )
  AND NOT (
    `Member_FromDate` >= '2014-01-01'
    AND `Member_FromDate` <= '2014-05-14'
  )

可以简化为:

SELECT *
FROM `nhrd_members` B
WHERE
  Membership_Number LIKE 'A%'
  AND (
    `Member_FromDate` > '2014-05-14'
    AND `Member_FromDate` <= '2015-01-01'
  )

答案 1 :(得分:0)

您可以使用子查询 -

"