/ 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
Vælge to gange fra samme tabel men forskel~
Fra : nivS1978@gmail.com


Dato : 10-09-08 02:26

Hvordan kan man vælge en værdi to gange fra den samme tabel i en
select? Et mærkeligt spørgsmål, men lad mig forklare.
Forestil dig et besked system, vi har en bruger tabel (UserId, Name):

CREATE TABLE [Users](
   [UserId] [int] NOT NULL,
   [Name] [varchar](50) COLLATE Latin1_General_CI_AS NULL
) ON [PRIMARY]

og en Besked tabel (Sender, Recipient, Message):

CREATE TABLE [Message](
   [Id] [int] NOT NULL,
   [SenderId] [int] NULL,
   [RecipientId] [int] NULL,
   [Message] [varchar](50) COLLATE Latin1_General_CI_AS NULL
) ON [PRIMARY]

Vi har så to brugere, Mads og Peter:
insert into users values(1, 'Mads')
insert into users values(2, 'Peter')

Og Mads har sendt en besked til Peter:
insert into message values(1, 1, 2, 'Haløjsa')

Mit spørgsmål er så hvordan man kan udforme en select statement så man
få følgende resultat:
+--------+-----------+---------+
| Sender | Recipient | Message |
+--------+-----------+---------+
| Mads | Peter | Haløjsa |
+--------+-----------+---------+

Mvh Hans Milling

 
 
Michael Zedeler (10-09-2008)
Kommentar
Fra : Michael Zedeler


Dato : 10-09-08 20:20

nivS1978@gmail.com wrote:
> Mit spørgsmål er så hvordan man kan udforme en select statement så man
> få følgende resultat:
> +--------+-----------+---------+
> | Sender | Recipient | Message |
> +--------+-----------+---------+
> | Mads | Peter | Haløjsa |
> +--------+-----------+---------+

Du skal lave et join:

Users <---> Message <---> Users

Man kan godt bruge den samme tabel flere gange ved blot at give den et
alias:

SELECT ...
FROM Sender AS s1, Sender AS s2, ...
WHERE ...

Mvh. Michael.

Søg
Reklame
Statistik
Spørgsmål : 177428
Tips : 31962
Nyheder : 719565
Indlæg : 6407944
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste