我需要做的MySQL查询使我的认知能力和MySQL技能达到了极限,我正在寻求帮助。
我的“工作”表如下所示:
| jobunique | jobtypeunique | joblat | joblng | jobbusiness | jobpayed | jobfixedstartdate | jobstartdate | jobfixedenddate | jobenddate | jobcreatedtimestamp
| 1 | 4 | 23.99 | 18.34 | 1 | 1 | 0 | 2019-04-06 | 0 | 2019-05-11 | 2019-04-05 12:22:02
| 2 | 2 | 31.34 | 11.89 | 1 | 0 | 0 | 2019-03-02 | 0 | 2019-04-01 | 2019-04-05 12:23:21
| 3 | 7 | 42.31 | 14.34 | 0 | 1 | 0 | 0000-00-00 | 0 | 0000-00-00 | 2019-04-05 12:23:44
| 4 | 7 | 60.99 | 55.67 | 0 | 1 | 1 | 2019-04-06 | 0 | 0000-00-00 | 2019-04-05 12:26:14
| 5 | 7 | 11.10 | 12.00 | 0 | 1 | 1 | 2019-05-06 | 1 | 2019-05-10 | 2019-04-05 12:27:10
我需要进行一个mysql查询,以获取符合以下条件的所有条目的"jobunique"
,"jobtypeunique"
,"joblat"
,"joblng"
信息:>
首先,我需要否项,其中"jobpayed"
是"0"
。
我需要所有"jobbusiness"
为"1"
且已传递"jobstartdate"
但不是"jobenddate"
的条目。当前日期介于"jobstartdate"
和"jobenddate"
之间。
我需要所有条目,其中"jobbusiness"
是"0"
,“ jobfixedstartdate”是"0"
,“ jobfixedenddate”是“ 0”,如第3行,其中"jobcreatedtimestamp"
是不超过60天。
我需要所有条目,其中"jobbusiness"
是"0"
,"jobfixedstartdate"
是"1"
和"jobfixedenddate"
是"0"
,如第4行所示, "jobstartdate"
不早于当前日期。
我需要所有条目,其中"jobbusiness"
是"0"
,"jobfixedstartdate"
是"1"
和"jobfixedenddate"
是"1"
,就像第5行一样,其中"jobenddate"
不早于当前日期。
我从来没有对MySQL查询进行联接,所以我真的不知道从哪里开始...
关于,斯蒂芬
答案 0 :(得分:0)
如果我正确,此查询将为您提供帮助。
SELECT
jobunique,
jobtypeunique ,
joblat ,
joblng
FROM job
WHERE
jobpayed != 0
AND
(
jobbusiness = 1 AND jobstartdate > NOW() AND jobenddate <= NOW()
) OR
(
jobbusiness = 0 AND jobfixedstartdate = 0 AND jobfixedenddate = 0 AND jobcreatedtimestamp <= (NOW()-INTERVAL 60 DAY)
) OR
(
jobbusiness = 0 AND jobfixedstartdate = 1 AND jobfixedenddate = 0 AND jobstartdate >= NOW()
) OR
(
jobbusiness = 0 AND jobfixedstartdate = 1 AND jobfixedenddate = 1 AND jobenddate >= NOW()
)
我最好的。
答案 1 :(得分:0)
这是解决此查询的一种方法
exists()