Toon posts:

LEFT OUTER JOIN in Interbase?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoe is de syntax van de left outer join in interbase precies?

Ik heb deze query, maar de syntax klopt daar niet van:
code:
1
2
3
4
5
6
7
8
SELECT U1.VOORNAAM AS INSVOORNAAM, U1.TUSSENVOEGSEL AS INSTUSSENVOEGSEL,
     U1.ACHTERNAAM AS INSACHTERNAAM, A.INSDATE, A.INSTIME,
     U2.VOORNAAM AS UPDVOORNAAM, U2.TUSSENVOEGSEL AS UPDTUSSENVOEGSEL,
     U2.ACHTERNAAM AS UPDACHTERNAAM, A.UPDDATE, A.UPDTIME
FROM   ARTIKELEENHEID A, USERS U1, USERS U2
     WHERE  A.EENHEID = '....'
       AND  LEFT OUTER JOIN A.INSUSER ON U1.USERID
       AND  LEFT OUTER JOIN A.UPDUSER ON U2.USERID;

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

JOIN statements zijn geen onderdeel van where toch?

Verwijderd

Klopt...

Lees dit maar eens door:

http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#JOIN

Zo iets werkt wel:
code:
1
2
3
mysql> SELECT table1.* FROM table1
    ->    LEFT JOIN table2 ON table1.id=table2.id
    ->    WHERE table2.id IS NULL;

Verwijderd

Topicstarter
Inderdaad, sorry.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 29 april 2002 11:41 schreef tokkie het volgende:
Inderdaad, sorry.
hoef je geen excuses voor aan te bieden hoor :)

Verwijderd

Topicstarter
Doe ik nu nog iets verkeerds, want hij werkt nog steeds niet. Ik krijg: Unknown table U1
code:
1
2
3
4
5
6
7
8
SELECT U1.VOORNAAM AS INSVOORNAAM, U1.TUSSENVOEGSEL AS INSTUSSENVOEGSEL,
     U1.ACHTERNAAM AS INSACHTERNAAM, A.INSDATE, A.INSTIME,
     U2.VOORNAAM AS UPDVOORNAAM, U2.TUSSENVOEGSEL AS UPDTUSSENVOEGSEL,
     U2.ACHTERNAAM AS UPDACHTERNAAM, A.UPDDATE, A.UPDTIME
FROM   ARTIKELEENHEID A, USERS U1, USERS U2
     LEFT OUTER JOIN U1 ON A.INSUSER=U1.USERID
     LEFT OUTER JOIN U2 ON A.UPDUSER=U2.USERID
WHERE  A.EENHEID = '42';

Verwijderd

Op maandag 29 april 2002 11:52 schreef tokkie het volgende:
Doe ik nu nog iets verkeerds, want hij werkt nog steeds niet. Ik krijg: Unknown table U1
FROM ARTIKELEENHEID AS A, USERS AS U1, USERS AS U2
Heel erg basic...

Volgens mij klopt er dan nog meer niet... maar dat weet ik niet 100% zeker aangezien ik ook maar een sql noob ben.

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

code:
1
FROM   ARTIKELEENHEID AS A, USERS AS U1, USERS AS U2

:?

On track


Verwijderd

Op maandag 29 april 2002 12:07 schreef WouZz het volgende:
code:
1
FROM   ARTIKELEENHEID AS A, USERS AS U1, USERS AS U2

:?
Hoe bedoel je ??

Hij wil gewoon een alias aan de tabel naam geven (kleiner enzo)...

Of is dat bij InterBase ander :? zoja hoef je dit niet te lezen.

Verwijderd

Topicstarter
Op maandag 29 april 2002 12:07 schreef WouZz het volgende:
code:
1
FROM   ARTIKELEENHEID AS A, USERS AS U1, USERS AS U2

:?
Ik geef alias'n aan die tabellen, omdat ik met die join 2 namen moet ophalen in de tabel users. (insuser en upduser)

Verwijderd

Topicstarter
Het is gelukt :) Dit is de query geworden:
code:
1
2
3
4
5
6
7
8
     Add(' SELECT U1.VOORNAAM AS INSVOORNAAM, U1.TUSSENVOEGSEL AS INSTUSSENVOEGSEL, ' +
       '      U1.ACHTERNAAM AS INSACHTERNAAM, A.INSDATE, A.INSTIME, ' +
       '      U2.VOORNAAM AS UPDVOORNAAM, U2.TUSSENVOEGSEL AS UPDTUSSENVOEGSEL, ' +
       '      U2.ACHTERNAAM AS UPDACHTERNAAM, A.UPDDATE, A.UPDTIME ' +
       ' FROM   ARTIKELEENHEID A ' +
       '      LEFT OUTER JOIN USERS U1 ON A.INSUSER=U1.USERID ' +
       '      LEFT OUTER JOIN USERS U2 ON A.UPDUSER=U2.USERID ' +
       ' WHERE  A.EENHEIDID = ' + Param(ListViewArtikelEenheid.Selected.SubItems[1]));

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

mgfun: Ik quotte jou niet maar gaf toevallig net dezelfde reactie als jij.. net iets later alleen :)

En tokkie: Ik wist niet dat interbase dergelijke aliases ondersteunde.. Fijn dat het nu gelukt is :)

On track


Verwijderd

Op maandag 29 april 2002 12:31 schreef WouZz het volgende:
mgfun: Ik quotte jou niet maar gaf toevallig net dezelfde reactie als jij.. net iets later alleen :)

En tokkie: Ik wist niet dat interbase dergelijke aliases ondersteunde.. Fijn dat het nu gelukt is :)
Aja... t'was nog fout ook :) Had eerst niet gezien dat het om interbase ging (half wakker enzo).
Pagina: 1