|
| sql hjælp - flere af det samme i samme tab~ Fra : Trine Banke Brennech~ |
Dato : 19-02-06 21:16 |
|
Hej, jeg er ikke så bevandret i sql og har et problem med en select.
(og ja, jeg ved godt, at eksemplet herunder ikke passer med sangene i
virkeligheden, det er bare et eksempel)
Jeg har ex. tabellen Artist
artist_id | lastname | firstname
===================
1 | Beatles | The
2 | Lennon | John
og tabellen Song
song_id | cd_id | title | performer | composer
=============================
1 | 2 | Help | 1 | 1
2 | 2 | Taxman | NULL | 2
3 | 3 | Flying | 1 | NULL
og jeg vil gerne hente info om sangene på CDen med id=2 ud, så jeg får flg.
resultat :
title | performer_firstname | performer_lastname |
composer_firstname | composer_lastname
==================================================================
Help | The | Beatles |
The | Beatles
Taxman | |
| John | Lennon
Jeg har desværre ingen idé om hvordan min select skal se ud. Jeg bruger
postgresql. Jeg vil være taknemmelig for god hjælp!
På forhånd MANGE tak
Trine Banke Brenneche
trine@br1nneche.dk (erstat 1 med en)
| |
Kristian Damm Jensen (19-02-2006)
| Kommentar Fra : Kristian Damm Jensen |
Dato : 19-02-06 21:34 |
|
Trine Banke Brenneche wrote:
> Hej, jeg er ikke så bevandret i sql og har et problem med en select.
> (og ja, jeg ved godt, at eksemplet herunder ikke passer med sangene i
> virkeligheden, det er bare et eksempel)
> Jeg har ex. tabellen Artist
> artist_id | lastname | firstname
> ===================
> 1 | Beatles | The
> 2 | Lennon | John
>
> og tabellen Song
> song_id | cd_id | title | performer | composer
> =============================
> 1 | 2 | Help | 1 | 1
> 2 | 2 | Taxman | NULL | 2
> 3 | 3 | Flying | 1 | NULL
>
> og jeg vil gerne hente info om sangene på CDen med id=2 ud, så jeg
> får flg. resultat :
> title | performer_firstname | performer_lastname |
> composer_firstname | composer_lastname
> ==================================================================
> Help | The | Beatles | The
> | Beatles
> Taxman | |
>> John | Lennon
select song.title
, performer.firstname, performer.lastname
, composer.firstname, composer.lastname,
from Song
Join Artist performer
on song.performer = performer.artist_id
join Artist composer
on song.composer = composer.artist_id
Formodentlig det mest almindelige problem for sql-begyndere: At indse, at
den samme tabel kan optræde flere gange i samme select og i forskellige
funktioner.
--
Kristian Damm Jensen
| |
Trine Banke Brennech~ (23-02-2006)
| Kommentar Fra : Trine Banke Brennech~ |
Dato : 23-02-06 22:35 |
|
"Kristian Damm Jensen" <dNOamSPmAM.usenet@kristiandamm.dk> skrev i en
meddelelse news:43f8d658$0$78280$157c6196@dreader1.cybercity.dk...
> Trine Banke Brenneche wrote:
>> Hej, jeg er ikke så bevandret i sql og har et problem med en select.
>> (og ja, jeg ved godt, at eksemplet herunder ikke passer med sangene i
>> virkeligheden, det er bare et eksempel)
>> Jeg har ex. tabellen Artist
>> artist_id | lastname | firstname
>> ===================
>> 1 | Beatles | The
>> 2 | Lennon | John
>>
>> og tabellen Song
>> song_id | cd_id | title | performer | composer
>> =============================
>> 1 | 2 | Help | 1 | 1
>> 2 | 2 | Taxman | NULL | 2
>> 3 | 3 | Flying | 1 | NULL
>>
>> og jeg vil gerne hente info om sangene på CDen med id=2 ud, så jeg
>> får flg. resultat :
>> title | performer_firstname | performer_lastname |
>> composer_firstname | composer_lastname
>> ==================================================================
>> Help | The | Beatles |
>> The | Beatles
>> Taxman | |
>>> John | Lennon
>
> select song.title
> , performer.firstname, performer.lastname
> , composer.firstname, composer.lastname,
> from Song
> Join Artist performer
> on song.performer = performer.artist_id
> join Artist composer
> on song.composer = composer.artist_id
Tak for hjælpen - som fint kan bruges, hvis der altid er både en composer og
en performer. Men mit problem er netop, at ingen af disse kolonner er not
null, og selv om nogle sange på en CD har begge dele, nogle har een af dem
og nogle måske ingen af dem, vil jeg stadig gerne kunne hente alle numrene
fra CDen ud. Er det ikke muligt?
Med venlig hilsen
Trine Banke Brenneche
trine@br1nneche.dk (erstat 1 med en)
| |
Kristian Damm Jensen (23-02-2006)
| Kommentar Fra : Kristian Damm Jensen |
Dato : 23-02-06 22:40 |
|
Trine Banke Brenneche wrote:
<snip>
> Tak for hjælpen - som fint kan bruges, hvis der altid er både en
> composer og en performer. Men mit problem er netop, at ingen af disse
> kolonner er not null, og selv om nogle sange på en CD har begge dele,
> nogle har een af dem og nogle måske ingen af dem, vil jeg stadig
> gerne kunne hente alle numrene fra CDen ud. Er det ikke muligt?
erstat "join" med "left join" !
--
Kristian Damm Jensen
| |
Trine Banke Brennech~ (23-02-2006)
| Kommentar Fra : Trine Banke Brennech~ |
Dato : 23-02-06 22:52 |
|
"Kristian Damm Jensen" <dNOamSPmAM.usenet@kristiandamm.dk> skrev i en
meddelelse news:43fe2ba3$0$67262$157c6196@dreader2.cybercity.dk...
> Trine Banke Brenneche wrote:
>
> <snip>
>
>> Tak for hjælpen - som fint kan bruges, hvis der altid er både en
>> composer og en performer. Men mit problem er netop, at ingen af disse
>> kolonner er not null, og selv om nogle sange på en CD har begge dele,
>> nogle har een af dem og nogle måske ingen af dem, vil jeg stadig
>> gerne kunne hente alle numrene fra CDen ud. Er det ikke muligt?
>
> erstat "join" med "left join" !
Doh, tak for hjælpen! *røde ører*
Med venlig hilsen
Trine Banke Brenneche
| |
|
|