/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
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



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste