我有学生和费用表。我想加入这两个表
生:
student_id dd_date
20 2015-12-25
费用:
fee_id student_id particulars due_date
1 20 Register fee 2015-10-25
2 20 Late fee 2015-09-28
3 20 Late Register fee 2015-12-26
4 20 Application fee 2015-12-28
这里我不想显示dd_date>的记录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
但它只显示那个特定日期和延迟费用。但我想要所有记录,但日期查询只执行“晚期”单词记录
任何人都可以提供帮助
答案 0 :(得分:0)
但是,您的源表,期望和结果不匹配。
答案 1 :(得分:0)
您似乎希望将s.dd_date > f.due_date
条件用于f.particular LIKE '%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)
答案 2 :(得分:0)
这是否符合您的要求
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)