# SQL Reihenfolge



## Generic1 (19. Feb 2012)

Hi,

ich habe einen Haufen Einträge in meiner Datenbank und die möchte ich in der Reihenfolge, in der diese Einträge in der DB gespeichert sind, auslesen: 

```
"select gn from " + GALERIENAME + " gn, " + GALERIELINK + " gl where gn.pk_galeriename = gl.fk_galeriename and gn.galeriename = ? asc pk_galerielink";
```

asc pk_galerielink geht einmal nicht.
Weiß jemand wie man das macht dass ich die Einträge eben nach pk_galerielink sortiert herausbekomme?
Besten Dank,


----------



## AlexSpritze (19. Feb 2012)

```
"select gn from " + GALERIENAME + " gn, " + GALERIELINK + " gl where gn.pk_galeriename = gl.fk_galeriename and gn.galeriename = ? ORDER BY pk_galerielink ASC";
```

Wenn dein beschriebenes Statement nicht geht, muss es doch eine Fehlermeldung geben? Was sagt die?


----------



## Fab1 (19. Feb 2012)

Das was Alex da gemacht hat, sieht für mich richtig aus. Hab allerdings noch nie mit SQL und Java gearbeitet. Nur mit MySQL.
Was mir aber noch aufgefallen ist, evtl. liegt ein weiterer Fehler hier:

```
gn.galeriename
```
Es fällt nur auf, dass jede Spalte mit "fk_" oder "pk_" beginnt. Nur diese eben nicht


----------



## Marcinek (19. Feb 2012)

fk = foreign key also fremdschlüssel

pk = primary key = primär schlüssel

Was das ist bekommt man bei google raus.

Deswegen hat nicht jede spalte diesen prefix

axo sehe gerade, dass in einer tabelle ein fk und ohne fk da steht -.- naja das bestimmt falsch.


----------



## Fab1 (19. Feb 2012)

Was das ist weiß ich, danke. Hab ich wohl nicht genug mit gedacht


----------



## parabool (19. Feb 2012)

order by fehlt noch.
So:

```
...and gn.galeriename = ? order by  pk_galerielink asc";
```




> axo sehe gerade, dass in einer tabelle ein fk und ohne fk da steht -.- naja das bestimmt falsch.


denke ich nicht.

_gn.galeriename_ ist sicher der eigentliche Name der Galerie nach der gesucht wird und
_pk_galeriename_ bzw.  _pk_galeriename_ der Schlüssel, durch den beide Tabellen
verknüpft sind.

Würde sie aber eher in _pk_galerie_ bzw. _fk_galerie_ unbenennen


----------



## Generic1 (21. Feb 2012)

Also ich habs jetzt mit order by versucht, klappt aber leider nicht, wahrscheinlich bin ich zu blöd.
Ich habe folgendes Schema: 
                   1                         n
GalerieName <----------------------------> GalerieLink

z.B.: 


```
Link1
Düsseldorf   1------------- n  Link2
                                         Link3
```
und ich hab folgendes SQL: 


```
final String searchQuery = "select gn from " + GALERIENAME + " gn, " + GALERIELINK + " gl where ( gn.pk_galeriename = gl.fk_galeriename and gn.galeriename = ? ) order by gl.picsorder asc";

final List<GalerieName> galerieList = getHibernateTemplate().find(searchQuery, eventname);
```

Da bekomm ich es eben nicht nach picsorder aufseigend zurück sonders so wies eben in der DB ist.
Weiß jemand was ich da falsch mache?

lg


----------



## Marcinek (21. Feb 2012)

Das SQL ist so korrekt.

Sind die picsorder den anders als die Reihenfolge "so wie es in der DB" steht?


----------



## Generic1 (21. Feb 2012)

ja sind anders, ich verstehs auch nicht, was da schief geht? Vielleicht hat jemand noch eine idee?


----------



## Generic1 (22. Feb 2012)

Jetzt weiß ich was falsch war: 

statt: 

"select gn from " + GALERIENAME + " gn,

gehört 

"select gl from " + GALERIENAME + " gn,

hin, dann klappts.


----------

