|
|
|
| требуется вот что
SELECT *
FROM (sn)
WHERE (
UNIX_TIMESTAMP((SELECT end FROM sn WHERE end >= "2011-06-26" ORDER BY end ASC LIMIT 1))
-
UNIX_TIMESTAMP((SELECT start FROM sn WHERE start >= "2011-07-02" ORDER BY start ASC LIMIT 1))
<= 86400
)
|
требуется выдернуть из базы два значения и сравнить их, но поскольку в подзапросах не работает лимит, то получается полная ахинея и непонятно как это реализовать. Если у кого есть идеи - был бы очень благодарен... | |
|
|
|
|
|
|
|
для: Keyses
(05.04.2011 в 05:36)
| | Вообще говоря лучше дамп приводить в таких случаях, иначе проверить даже синтаксис запроса тяжело. Возможно, следующий запрос подойдет, но нужно проверять.
SELECT
bas.id,
bas.start,
bas.end,
bas.price,
bas.p_id
FROM
sn AS bas
LEFT JOIN
(SELECT UNIX_TIMESTAMP(end) AS unxtm, end
FROM sn
ORDER BY end ASC
LIMIT 1) AS fst
ON (fst.end = bas.end AND fst.end >= "2011-06-26")
LEFT JOIN
(SELECT UNIX_TIMESTAMP(start) AS unxtm, start
FROM sn
ORDER BY start ASC
LIMIT 1) AS snd
ON (snd.start = bas.start AND snd.start >= "2011-07-02")
WHERE
fst.unxtm - snd.unxtm <= 86400
|
| |
|
|
|