[SQL] rijen samenvoegen in JOIN

Pagina: 1
Acties:

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Beste allemaal,
Ik zit met een probleempje, ik probeer uit een legacy systeem dmv 1 query een aantal records op te halen.
Nu mis ik alleen nog 1 veld..en dat ik een soort van tekst veld.
Echter in de database vind ik nu een tabel met tekstregels waarbij elke regel tekst 1 record in de database is

Die tabel tekstregels ziet er zo uit.
code:
1
2
3
4
gdl_att_lys
    ato_idt 
    vlg_num 
    oms

Verder heb ik een tamelijk ingewikkelde query maar het komt neer op
code:
1
SELECT velden FROM gdl_ato a


echter als ik nu die tekstregels wil toevoegen en ik maak er een join op zoiets als
code:
1
SELECT velden FROM gdl_ato a INNER JOIN gdl_att_lys b ON a.ato_idt = b.ato_idt


dan krijg ik dus als er 4 tekstregls zijn ook 4 keer de hoofdregel

Is er een manier dat ik dit in mijn join kan samenvoegen?

Ik kan natuurlijk voor elke row uit de hoofdtabel wel een aparte query doen om de tekstregels op te halen maar er komen 54.000 records uit die hoofdtabel...das nogal veel om bij elk record weer een query te doen.

Ik kan ook nog 1 aparte query doen waarbij ik alle tekstregels ophaal en op ato_idt concat en samenvoeg in een array en als ik dan die andere query doe bij elke regel een lookup doen in die array.

8)7

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als het om MySQL gaat kun je eens kijken naar GROUP_CONCAT

[ Voor 45% gewijzigd door RobIII op 16-09-2009 16:10 ]

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


  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
Helaas het gaat om een Ingres database die ik alleen via ODBC mag benaderen

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

ODBC boeit niet, Ingres wel want die support GROUP_CONCAT niet, da's een unieke MySQL feature. En helaas lijkt Ingres geen support te hebben voor custom aggregate functions, dus dan kan dit alleen in je code :)

Professionele website nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Dat is vreemd, want het gedag dat jij beschrijft is dat van een RIGHT OUTER JOIN ipv een INNER JOIN. Bij een INNER JOIN is het zo dat alleen de rijen die in beide tabellen aanwezig zijn in de join conditie getoond worden. Dat is waarschijnlijk wat je wilt.

"dan krijg ik dus als er 4 tekstregls zijn ook 4 keer de hoofdregel" => Dat is een RIGHT OUTER JOIN. Als de hoofdregel 4 keer hetzelfde blijkt te zijn, althans.

Maar goed, wat je wilt bereiken is recht toe recht aan en zou je prima met joins op kunnen lossen. Google er maar eens op.

[ Voor 13% gewijzigd door Verwijderd op 18-09-2009 10:43 ]


Acties:
  • 0 Henk 'm!

  • rb338
  • Registratie: Januari 2001
  • Laatst online: 05-01 12:58
Je wil dus alle tekstregels die bij een hoofdregel horen samenvoegen in 1 attribuut? Dan is idd GROUP_CONCAT precies wat je zou willen, maar helaas niet beschikbaar in Ingres...

Ook de MS SQL variant op een GROUP_CONCAT is niet ingewikkeld en zo te Googlen, maar voor Ingres kan ik zo gauw niets vinden.

Wat hij beschrijft is trouwens een prima inner join, ik zie er geen outer join in tenminste.

[ Voor 38% gewijzigd door rb338 op 18-09-2009 11:10 ]

Pagina: 1