Kozz has asked for the wisdom of the Perl Monks concerning the following question:
Dear monks:
Please forgive me for asking this question here, but in my estimation it seems that there are MANY monks here with extensive database experience.
I'll provide a minimal test-case for you to chew on. Given a MySQL table with the following content:
I want to do something likeid | title | doc_num | version ---+-------+---------+-------- 1 | bar | 1234 | 1 2 | foo | 1234 | 2 3 | baz | 5678 | 1
The problem is that the ORDER BY clause ends up sorting by the title of the older version, "bar" rather than the title for the latest version, "foo". Of course, what I REALLY want is the title from the document with the greatest version. Is there a way to do this in a single query, without using sub-selects or other such tedious things?SELECT title, doc_num, MAX(version) AS version ORDER BY title; which produces this: title | doc_num | version -------+---------+-------- bar | 1234 | 2 baz | 5678 | 1
Or is my database hopelessly structured incorrectly?
My humblest thanks. If this question is hopelessly inappropriate, just "--" me into oblivion and please recommend a penance for my sins. ;)
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: MySQL question
by Jazz (Curate) on Mar 28, 2002 at 21:52 UTC | |
•Re: MySQL question
by merlyn (Sage) on Mar 28, 2002 at 22:21 UTC | |
Re: MySQL question
by shadox (Priest) on Mar 28, 2002 at 21:51 UTC | |
Re: MySQL question
by rbc (Curate) on Mar 28, 2002 at 22:43 UTC | |
Re: MySQL question
by Juerd (Abbot) on Mar 28, 2002 at 22:01 UTC | |
by Kozz (Friar) on Mar 28, 2002 at 22:21 UTC | |
by merlyn (Sage) on Mar 28, 2002 at 22:28 UTC | |
by rbc (Curate) on Mar 29, 2002 at 17:10 UTC |
Back to
Seekers of Perl Wisdom