[SQL] 2 gegevens uit zelfde tabel adhv ID uit andere tabel

Pagina: 1
Acties:
  • 156 views sinds 30-01-2008
  • Reageer

  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 30-11 10:16
Beetje lastige titel, maar met onderstaande SQL probeer ik het te verduidelijken:
SQL:
1
2
3
4
5
6
7
SELECT
    FirstDeviceID,
    SecondDeviceID
FROM
    Connection
WHERE
    ConnectionID = 38300

Bovenstaande SQL geeft keurig 2 ID's weer van Devices. Wat ik wil is niet de ID's weergeven maar de benaming van de Devices.
De tabel Device heeft onder andere de volgende velden:
code:
1
DeviceID  Device

Ik heb al diverse queries geprobeert, maar het probleem is dat ik steeds 2 rijen terug krijg omdat ik in de Select 2 keer om Device.Device vraag.
Ik heb het nu opgelost op een slordige manier, door eerst een temptabel aan te maken, en dan 2x de verschillende DeviceID te updaten naar de bijbehorende Device.

Hoe kan ik in 1 Select statement toch 2x een verschillende Device weergeven?

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Twee keer joinen? En een alias gebruiken om de naam uniek te houden

Alias:
SQL:
1
SELECT x.foo FROM Table AS x

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 30-11 10:16
kenneth schreef op zaterdag 19 mei 2007 @ 10:27:
Twee keer joinen? En een alias gebruiken om de naam uniek te houden

Alias:
SQL:
1
SELECT x.foo FROM Table AS x
Weer wat geleerd, Alias bij een tabel...

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

En dan kan je dus nu twee keer de tabel Device gebruiken, elk met een andere alias, de ene join je op FirstDeviceID, de andere op SecondDeviceID :)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Verwijderd

kenneth schreef op zaterdag 19 mei 2007 @ 11:16:
En dan kan je dus nu twee keer de tabel Device gebruiken, elk met een andere alias, de ene join je op FirstDeviceID, de andere op SecondDeviceID :)
of recursief querien (oracle).
(op die manier hoef je geen 4 aliassen aan te maken om de mogelijkheid te voorzien dat er 4 records ver moet gezocht worden (en laat de query ook een 5de toe zonder SQL wijziging).

SQL:
1
2
3
select * from devices
connect by prior device_id = second_device_id
start with device_id = :p_device_id


en wat ik me altijd al heb afgevraagd. Bestaat zoiets in andere omgevingen dan ORACLE?
Het is iets dat ik snel zou missen als ik ooit met bijvoorbeeld SQL Server zou werken.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 22 mei 2007 @ 13:57:
[...]
en wat ik me altijd al heb afgevraagd. Bestaat zoiets in andere omgevingen dan ORACLE?
Het is iets dat ik snel zou missen als ik ooit met bijvoorbeeld SQL Server zou werken.
Bij mijn weten is dat ORACLE-specifiek, maar er zijn voldoende andere (betere) oplossingen voorhanden voor hiërarchische data in RDBMS-en ;)

[ Voor 20% gewijzigd door RobIII op 22-05-2007 14:08 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1