Mysql 在select查询中具有特定的word记录

Mysql 在select查询中具有特定的word记录,mysql,Mysql,我有学生和费用表。我想加入这两个表 学生: student_id dd_date 20 2015-12-25 费用: 在这里,我不想显示dd_date>due_date的记录,它只包含延迟的word记录。 我想要这样的输出 student_id fee_id Particulars dd_date due_date 20 1 Register fee 2015-12

我有学生和费用表。我想加入这两个表

学生:

student_id      dd_date
  20          2015-12-25
费用:

在这里,我不想显示dd_date>due_date的记录,它只包含延迟的word记录。 我想要这样的输出

  student_id    fee_id     Particulars       dd_date       due_date

      20          1        Register fee      2015-12-25    2015-10-25
      20          2         Late fee         2015-12-25    2015-09-28
      20          3        Application fee   2015-12-25    2015-12-28
SELECT * 
FROM students S,Fees F 
WHERE F.student_id = S.student_id 
  AND F.particulars  LIKE  '%Late%' 
  AND S.dd_date >F.due_date
我正在写这样的问题

  student_id    fee_id     Particulars       dd_date       due_date

      20          1        Register fee      2015-12-25    2015-10-25
      20          2         Late fee         2015-12-25    2015-09-28
      20          3        Application fee   2015-12-25    2015-12-28
SELECT * 
FROM students S,Fees F 
WHERE F.student_id = S.student_id 
  AND F.particulars  LIKE  '%Late%' 
  AND S.dd_date >F.due_date
但它只显示特定的日期,只显示滞纳金。但我希望所有记录,但日期查询只对“滞纳金”字记录执行


有人能帮忙吗?

嗯,如果我以正确的方式解释了您的问题,那么您只需要从查询中删除和F.像“%Late%”这样的详细信息,因为此条件确保只返回包含“Late”字(嗯,字符串)的记录


但是,您的源表、期望值和结果不匹配。

似乎您希望使用
s.dd\u date>f.due\u date
条件来处理具有
f.特别是“%late%”的费用。
。试着用这个来达到那个目的

SELECT * 
FROM students s, Fees f 
WHERE f.student_id = s.student_id 
  AND IF(f.particulars LIKE '%Late%', s.dd_date > f.due_date, 1=1)

这是你想要的吗

SELECT * 
FROM students S,Fees F 
WHERE F.student_id = S.student_id 
  AND NOT (F.particulars  LIKE  '%Late%' 
  AND S.dd_date < F.due_date)
选择*
来自学生S,费用F
其中F.student\u id=S.student\u id
而不是(F.类似于“%Late%”的详细信息
和S.dd_日期
源表、期望值和结果不匹配