Advertentie | |
|
![]() |
||
Citaat:
Maar je hebt de tabel Artikel opgenomen in de query. Dan zul je daar dus ook een JOIN-conditie voor moeten toevoegen (anders krijg je alsnog een carthesisch product). (In de praktijk lijkt het me ook wel degelijk verstandig, de Artikel tabel mee te nemen in de view. Want vroeg of laat zal de klant een van de velden van die tabel willen raadplegen.) ----------------- Toch nog twee opmerkingen: 1. Ik denk, dat je het best bij de aanroep van de view *ook* precies de gewenste velden kunt aangeven. Dan blijft de query in ieder geval op dezelfde manier werken, als iemand een veld toevoegt aan de view. 2. In de praktijk kan het handig zijn, een paar velden meer op te nemen in de view. Maar dat mag je als ontwikkelaar of ontwerper in principe niet zelf beslissen, je zult dus expliciet toestemming moeten vragen aan je opdrachtgever. Deze extra velden kunnen het voor jou (of voor je concurrent!) later makkelijker maken, als er nieuwe rapportages nodig zijn. Maar de klant betaalt voor het extra werk, en de klant betaalt voor de extra verwerkingskosten, dus de klant heeft hierin het laatse woord. |
![]() |
||
![]() |
Citaat:
Ik vrees alleen dat deze query grammaticaal gezien niet klopt. Dus als je hem zo intikt, krijg je een foutmelding. Functioneel gezien is het (volgens mij) nu in orde. En dat is in de praktijk het belangrijkste; - Als je de query zo intikt, zullen de foutmeldingen jou helpen bij het oplossen van de syntaxfouten, en dan kom je uiteindelijk op de goede query uit. - Als je de query zo aflevert (in een werk-situatie), zal een van je collega's je tijdens een peer review helpen bij het oplossen van de syntaxfouten, en dan kom je uiteindelijk op de goede query uit. - Als je de query zo inlevert (in een onderwijs-situatie), krijg je puntenaftrek vanwege de syntaxfout. Maar de docent zal zien dat je begrijpt wat je moet doen, dus als het goed is krijg je daar wel weer punten voor. -------------------------- De juiste syntax hangt af van de versie van SQL die jullie gebruiken. Blijkbaar gebruiken jullie: FROM tabel1 alias1 LEFT JOIN tabel2 alias 2 ON alias1.veld1 = alias2.veld2 om twee tabellen te joinen. Het resultaat van zo'n join beschouwen we (in een relationele database) weer als een tabel. Om daar een derde tabel aan toe te voegen, zou je dus eigenlijk het volgende willen doen: FROM <resultaat1> alias1a LEFT JOIN tabel3 alias3 ON alias1a.veld3 = alias3.veld2 Dan moet je (in de SQL-versie waar ik mee werk) op de plaats van dat resultaat dus gewoon je vorige join neerzetten: FROM tabel1 alias1 LEFT JOIN tabel2 alias 2 ON alias1.veld1 = alias2.veld2 LEFT JOIN tabel3 alias3 ON alias2.veld1 = alias3.veld1 Bij die tweede JOIN beschouw je dan gewoon alles wat ervoor staat als een tabel, die je joint met de tabel die onmiddellijk achter LEFT JOIN staat. Op dezelfde manier kun je dan vervolgens de vierde tabel er aan joinen. Veel succes! |
Advertentie |
|
![]() |
|
|
![]() |
||||
Forum | Topic | Reacties | Laatste bericht | |
Software & Hardware |
[ASP] Kan de database niet vinden JJzD | 3 | 07-12-2005 18:10 | |
Software & Hardware |
[PHP/MySQL] EK Poule Jordi | 10 | 04-06-2004 12:25 | |
Software & Hardware |
[php/mysql] in 1 query verschillende variabelen counten? JJzD | 10 | 22-07-2003 00:12 |