开发者

MySQL Order by NULL join

I'm开发者_Go百科 trying to do an ORDER BY where I want any rows without an entry in the join table to appear at the bottom of the list and then organised by name. Simplified tables are:

users (id, name) photos (id, filename, user_id)

So far I have:

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

Many thanks.


You can use this:

ORDER BY ISNULL(photos.id), name DESC

The ISNULL() function will return 1 or 0, which will conveniently sort in the right order for you.


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 will show NULL values at the end.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜