Toon posts:

[MySQL] gegevens tonen van tabel gekoppeld aan zelfde tabel

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een tabel gekoppeld aan dezelfde tabel via een one-to-may relatie. De tabel layout ziet er zo uit:

Tabel Randapparatuur

Randapparatuur_ID int
Randapparatuur_Naam char

Tabel Heeft_Directe_Verbinding_met

Randapparatuur_id int
Ran_randapparatuur_id int

Nu wil ik via deze twee tabbelen de gekoppelde randapparaten zien. Bijvoorbeeld Computer A is aangesloten op Computer B

Met deze query lukt het me wel om dit te krijgen

SELECT
randapparatuur.randapparatuur_id,
randapparatuur.randapparatuur_naam,
heeft_directe_verbinding_met.ran_randapparatuur_id
FROM
randapparatuur,
heeft_directe_verbinding_met
WHERE
(randapparatuur.randapparatuur_id = heeft_directe_verbinding_met.randapparatuur_id)

resultaat:
Randapparaat_ID....Randapparatuur_Naam...Ran_randapparatuur_ID
1...........................Computer A...................2...............................

Maar ik wil nog een extra kolom erbij krijgen zodat bij je ook computer B in het resultaat ziet zodat het dit resultaat word:
Randapparaat_ID....Randapparatuur_Naam...Ran_randapparatuur_ID...Randapparatuur_naam
1...........................Computer A...................2...................................Computer B

Is dit mogelijk?

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Ja dit is mogelijk.
Ik zou als ik jou was eens onderzoek gaan doen naar joins (keyword voor google). Kijk bijvoorbeeld eens op http://www.w3schools.com/sql/default.asp, daar kun je een boel leren.

Ik zou het je natuurlijk ook kunnen voorkauwen, maar je leert het meeste van zelf doen. :)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 21:24

NMe

Quia Ego Sic Dico.

code:
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
    r1.randapparatuur_id AS r1_id,
    r1.randapparatuur_naam AS r1_naam,
    r2.randapparatuur_id AS r2_id,
    r2.randapparatuur_naam AS r2_naam,
    heeft_directe_verbinding_met.ran_randapparatuur_id
FROM
    randapparatuur AS r1,
    randapparatuur AS r2
WHERE
    (r1_id = heeft_directe_verbinding_met.randapparatuur_id)
    AND (r2_id = heeft_directe_verbinding_met.ran_randapparatuur_id)

Mooi onderhoudbaar is je datamodel niet echt trouwens. Valt bij nader inzien nog wel mee. :)
bigbeng schreef op woensdag 08 december 2004 @ 14:27:
Ja dit is mogelijk.
Ik zou als ik jou was eens onderzoek gaan doen naar joins (keyword voor google). Kijk bijvoorbeeld eens op http://www.w3schools.com/sql/default.asp, daar kun je een boel leren.
Hij weet wat joins zijn, hij gebruikt ze immers ook. ;)

[ Voor 34% gewijzigd door NMe op 08-12-2004 14:46 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
-NMe- schreef op woensdag 08 december 2004 @ 14:33:

Mooi onderhoudbaar is je datamodel niet echt trouwens.
Wat vind jij een betere oplossing dan? Ik kon niet iets anders bedenken :). Iig bedankt voor je reactie

  • Equator
  • Registratie: April 2001
  • Laatst online: 16:26

Equator

Crew Council

🦺#Rodekruis #whisky #barista

Verwijderd schreef op woensdag 08 december 2004 @ 14:41:
[...]


Wat vind jij een betere oplossing dan? Ik kon niet iets anders bedenken :). Iig bedankt voor je reactie
Tja, het is waarschijnlijk voor iedereen anders, maar al mijn tabellen beginnen met tbl_
dus:
code:
1
2
3
4
5
6
7
tbl_RA
- ID int(8)
- NAAM VarChar(100)

tbl_KOPPEL / tbl_JOIN
- RA_ID int(8)
- RA_NAAM VarChar(100)

Waar het in ieder geval op neer komt is dat je in een query direct kan zien wat er gevraagd wordt van welke table

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 04-02 22:19

Goodielover

Only The Best is Good Enough.

Nog maar een tabel in de join zou ik zeggen en ID lijkt me niet nodig in de select
code:
1
2
3
4
5
6
7
8
9
SELECT  r1.randapparatuur_id AS r1_id,
    r1.randapparatuur_naam AS r1_naam,
    r2.randapparatuur_id AS r2_id,
    r2.randapparatuur_naam AS r2_naam,
FROM    randapparatuur r1,
    randapparatuur r2,
    heeft_directe_verbinding_met hdvm
WHERE   r1.randapparatuur_id = hdvm.randapparatuur_id
AND         r1.randapparatuur_id = hdvm.ran_randapparatuur_id
Pagina: 1