Forum Programmation.SQL Sous-requête dans un order by

Posté par  (site Web personnel) .
Étiquettes : aucune
-1
13
fév.
2012

Supposons la requête suivante :
select a.*, b.date from a, b where b.pk_de_a = a.id order by b.date;

Je souhaiterai faire la même chose, sauf que pour les raisons technique je ne peux pas utiliser le b.date dans le select (hibernate, il lui faut uniquement la table complète)

à la rigueur je peux rajouter une colonne a.date mais il faudrait qu'elle soit tout le temps vide et qu'elle soit remplie automagiquement pendante la requête avec les valeurs de b.

Sinon pour moi, l'idéal serait de pouvoir tout mettre dans le order by
du genre select a.* from a order by (select a.*, b.date from a, b where b.pk_de_a = a.id order by b.date);

J'espère que quelques-uns comprendront ce que je dit, je sèche un peu là. Merci

  • # Non

    Posté par  . Évalué à 2.

    J'espère que quelques-uns comprendront ce que je dit, je sèche un peu là. Merci

    Je comprend pas. Pourquoi tu ne fais pas select a.* from a, b where a.id = b.id order by b.date; ?

    $ sqlite3 $(mktemp)
    SQLite version 3.7.4
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    sqlite> create table a (id integer, value text, date datetime);
    sqlite> create table b (id integer, value text, date datetime);
    sqlite> insert into a values (1, 'foo', datetime('now'));
    sqlite> insert into a values (2, 'bar', datetime('now'));
    sqlite> insert into b values (1, 'bar', datetime('now'));
    sqlite> insert into b values (2, 'foo', datetime('now'));
    sqlite> select a.* from a, b where a.id = b.id order by b.date;
    1|foo|2012-02-13 13:41:37
    2|bar|2012-02-13 13:41:43
    sqlite> select * from b;
    1|bar|2012-02-13 13:41:58
    2|foo|2012-02-13 13:42:08
    sqlite> update b set date=datetime('now') where b.id = 1;
    sqlite> select * from b;
    1|bar|2012-02-13 13:45:40
    2|foo|2012-02-13 13:42:08
    sqlite> select a.* from a, b where a.id = b.id order by b.date;
    2|bar|2012-02-13 13:41:43
    1|foo|2012-02-13 13:41:37
    
    

    Knowing the syntax of Java does not make someone a software engineer.

  • # Une vue ?

    Posté par  . Évalué à 2.

    Et tu ne pourrais pas créer une vue basée sur cette requête et que tu passerais ensuite à Hibernate ?

    • [^] # Re: Une vue ?

      Posté par  (site Web personnel) . Évalué à 1.

      Peut-être mais j'ai peur que ça me fasse plein de choses à gérer (et que je sais pas faire en ce moment) juste pour faire un simple order by

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.