[TriLUG] OT: a SQL puzzler
William Sutton
william at trilug.org
Wed Apr 28 11:41:42 EDT 2010
err... lazy me, try this instead:
SELECT r.id, r.name,
(SELECT f.winner
FROM finishers f
WHERE f.id=r.id AND f.place=1
) AS first,
(SELECT f.winner
FROM finishers f
WHERE f.id=r.id AND f.place=2
) AS second,
(SELECT f.winner
FROM finishers f
WHERE f.id=r.id AND f.place=3
) AS third
FROM races r
ORDER BY r.id
William Sutton
On Wed, 28 Apr 2010, William Sutton wrote:
> like this:?
>
> SELECT r.id, r.name,
> (SELECT f.winner
> FROM finishers f
> WHERE f.id=r.id AND f.place=1
> ) AS first
> (SELECT f.winner
> FROM finishers f
> WHERE f.id=r.id AND f.place=2
> ) AS first
> (SELECT f.winner
> FROM finishers f
> WHERE f.id=r.id AND f.place=3
> ) AS first
> FROM races r
> ORDER BY r.id
>
>
> William Sutton
>
> On Wed, 28 Apr 2010, Alan Porter wrote:
>
>>
>> I have a SQL puzzler. I am trying to join two tables that have a
>> one-to-many relationship, but I know in advance how many is 'many'.
>>
>> I specifically want the result to give three rows -- not nine rows.
>>
>> Anyone want to take a stab at this?
>>
>>
>> 'races' table
>> +-----+---------------------+
>> | id | race |
>> +-----+---------------------+
>> | 101 | 1992 Pres Election |
>> | 102 | 2007 Kentucky Derby |
>> | 103 | 2009 Daytona 500 |
>> +-----+---------------------+
>>
>> 'finishers' table
>> +-----+-------+---------------+
>> | id | place | winner |
>> +-----+-------+---------------+
>> | 101 | 1 | Bill Clinton |
>> | 101 | 2 | G.H.W. Bush |
>> | 101 | 3 | Ross Perot |
>> | 102 | 1 | Street Sense |
>> | 102 | 2 | Hard Spun |
>> | 102 | 3 | Curlin |
>> | 103 | 1 | Matt Kenseth |
>> | 103 | 2 | Kevin Harvick |
>> | 103 | 3 | Allmendinger |
>> +-----+-------+---------------+
>>
>> results
>> +-----+---------------------+--------------+---------------+--------------+
>> | ID | RACE | FIRST | SECOND | THIRD |
>> +-----+---------------------+--------------+---------------+--------------+
>> | 101 | 1992 Pres Election | Bill Clinton | G.H.W. Bush | Ross Perot |
>> | 102 | 2007 Kentucky Derby | Street Sense | Hard Spun | Curlin |
>> | 103 | 2009 Daytona 500 | Matt Kenseth | Kevin Harvick | Allmendinger |
>> +-----+---------------------+--------------+---------------+--------------+
>>
>>
>> Alan
>>
>>
>>
>>
>>
>>
>>
>> .
>> --
>> TriLUG mailing list : http://www.trilug.org/mailman/listinfo/trilug
>> TriLUG FAQ : http://www.trilug.org/wiki/Frequently_Asked_Questions
>>
> --
> TriLUG mailing list : http://www.trilug.org/mailman/listinfo/trilug
> TriLUG FAQ : http://www.trilug.org/wiki/Frequently_Asked_Questions
>
More information about the TriLUG
mailing list