我试图在嵌套的父查询中访问正在调用的字段,这是我的表
表:提醒。
列:id:PK,rid:VARCHAR,title:VARCHAR,remind:Integer,start_day:DATE
SELECT id, remind, rid, title
FROM reminders
WHERE DATEDIFF(start_day, NOW()) <= (SELECT LEAST(3, remind))
基本上第二个&#34;提醒&#34; LEAST()命令中的列被引用以引用第一个&#34;提醒&#34;跨越每一行的列值,但由于我无法想象我会不断获得意外回报。
修改
为了回应戈登爵士,我提供了更详细的信息,我会尽我所能,但我真的不知道如何在这里提供表数据,但我会尝试。
所以基本上我试图从提醒表中选择所有项目,其中SET DAY(start_day)和TODAY之间的差异不超过TWO值中的一个,那些是3或值集在当前行的提醒列中。基本上,如果设置的值小于3,那么应该使用它,但是如果它超过3,则应该选择3。这是表格的视觉效果。
+---+-----------------+--------------------+-----------------+-------------+
|id | rid | title | start_day | remind |
+---|-----------------|--------------------|-----------------|-------------|
|1 | ER456GH | This is real deep | 2014-01-01 | 10 |
|2 | OUBYV90 | This is also deep | 2014-01-13 | 10 |
|3 | UI90POL | This is deeper | 2014-01-13 | 60 |
|4 | TWEET90 | This is just deep | 2014-01-14 | 0 |
+---+-----------------+--------------------+-----------------+-------------+
所以在编辑这个时,我意识到在第四个条目下有一个错误的表条目导致它被拉错(即提醒= 0)。叹。我觉得有些严重的短视/睡眠不足。查询确实有效。再次感谢。
答案 0 :(得分:2)
这里不需要子查询。这有用吗?
SELECT id, remind, rid, title
FROM reminders
WHERE DATEDIFF(start_day, NOW()) <= LEAST(3, remind);