sql >> Databasteknik >  >> RDS >> Mysql

Refererar till yttre fråga i underfråga

Du kan göra något sånt här med en join:

select * from table a
    inner join (
       select id,
              max(
                  if(`date` <= __LOWERLIMIT__ ,`date`, 0)
              ) as min_date,              
              min(
                 if(`date` >= __UPPERLIMIT__ , `date`, UNIX_TIMESTAMP())
              ) as max_date
           from table
           where id = __ID__
           group by id
    ) range on
    range.id = a.id and
    a.`date` between min_date and max_date;

Jag är ingen MySQL-expert, så jag ber om ursäkt om det behövs lite syntaxjusteringar.

Uppdatering: OP hittade också denna mycket trevliga lösning .




  1. Roll existerar inte och kan inte skapa databas när du använder PostgreSQL

  2. Så här löser du ORA-011033:ORACLE-initiering eller avstängning pågår

  3. Varning:Ogiltigt argument har angetts för foreach() in

  4. Pivoter med dynamiska kolumner i SQL Server