2009-10-14 5 views
2

J'essaie de faire un ORDER BY où je veux que toutes les lignes sans une entrée dans la table de jointure apparaissent au bas de la liste, puis organisées par nom. Tables simplifiées sont:MySQL Order by NULL rejoindre

utilisateurs (id, nom) photos (id, nom de fichier, user_id)

Jusqu'à présent, j'ai:

SELECT name FROM users 
LEFT OUTER JOIN photos ON photos.user_id = users.id 
ORDER BY *ANSWER HERE*, name DESC 

Un grand merci.

Répondre

10

Vous pouvez utiliser ceci:

ORDER BY ISNULL(photos.id), name DESC 

La fonction ISNULL() retourne 1 ou 0, ce qui sera commodément sorte dans l'ordre pour vous.

0
SELECT name FROM users 
LEFT OUTER JOIN photos ON photos.user_id = users.id 
ORDER BY photos.user_id DESC, name DESC 

ORDER BY photos.user_id DESC montrera des valeurs NULL à la fin.

+0

est ma réponse complètement hors piste? O_o – manji