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_日期
源表、期望值和结果不匹配