Datum en JOINS
Hoi,
Ik zit vandaag met een paar dingen. Ten eerste wil ik graag de datum functie van MySQL beter gaan gebruiken. Ik heb nu in m'n script met een CONCAT() en ELT() een Nederlandse datum aan elkaar geplakt omdat ik het in het verleden niet voor elkaar kreeg om een Nederlandse datum te krijgen in MySQL.
Vandaag heb ik dus geprobeerd wat ik toen opgegeven heb; ik ben gaan spelen met lc_time_names. Bij mijn host werkt het niet om eerst SET lc_time_names = 'nl_NL' te doen en vervolgens een query uit te voeren. Tenminste, dat lukt wel, alleen krijg ik m'n datum dan toch in het Engels.
Ik weet niet of dat altijd zo is, maar ls ik twee query's achter elkaar uitvoer (dus eerst SET lc_time_names = 'nl_NL'), en direct daaronder, na de ; m'n query, dan komt de datum wel in het Nederlands. Ik houd wel de hele tijd DATE_FORMAT aan.
Ten tweede is m'n vraag hoe je beter JOINS kunt gebruiken: met INNER, OUTER, LEFT en RIGHT, of door eerst al je tabellen te selecteren en vervolgens te filteren met WHERE.
Ik hoop dat jullie me kunnen helpen!
Ik zit vandaag met een paar dingen. Ten eerste wil ik graag de datum functie van MySQL beter gaan gebruiken. Ik heb nu in m'n script met een CONCAT() en ELT() een Nederlandse datum aan elkaar geplakt omdat ik het in het verleden niet voor elkaar kreeg om een Nederlandse datum te krijgen in MySQL.
Vandaag heb ik dus geprobeerd wat ik toen opgegeven heb; ik ben gaan spelen met lc_time_names. Bij mijn host werkt het niet om eerst SET lc_time_names = 'nl_NL' te doen en vervolgens een query uit te voeren. Tenminste, dat lukt wel, alleen krijg ik m'n datum dan toch in het Engels.
Ik weet niet of dat altijd zo is, maar ls ik twee query's achter elkaar uitvoer (dus eerst SET lc_time_names = 'nl_NL'), en direct daaronder, na de ; m'n query, dan komt de datum wel in het Nederlands. Ik houd wel de hele tijd DATE_FORMAT aan.
Ten tweede is m'n vraag hoe je beter JOINS kunt gebruiken: met INNER, OUTER, LEFT en RIGHT, of door eerst al je tabellen te selecteren en vervolgens te filteren met WHERE.
Ik hoop dat jullie me kunnen helpen!
Gesponsorde koppelingen:
In principe zal het zo moeten zijn dat als je de SET direct na de connect en select db plaatst je de set hebt totdat dat connect sessie wordt afgesloten.
lc_time_names, tja welke beschikbaar zijn is maar net afhankelijk van wat er geinstalleerd is aan mysql language packages.
Gezien het feit dat mysql geen duidelijk alternatieve schrijfwijze heeft voor de where clause schrijf ik de joins in de from. Je kunt aan de where clause niet in 1 keer goed aflezen of het inner of een left join is.
lc_time_names, tja welke beschikbaar zijn is maar net afhankelijk van wat er geinstalleerd is aan mysql language packages.
Gezien het feit dat mysql geen duidelijk alternatieve schrijfwijze heeft voor de where clause schrijf ik de joins in de from. Je kunt aan de where clause niet in 1 keer goed aflezen of het inner of een left join is.
Roel van de Water op 15/01/2012 14:43:19:
Ten tweede is m'n vraag hoe je beter JOINS kunt gebruiken: met INNER, OUTER, LEFT en RIGHT, of door eerst al je tabellen te selecteren en vervolgens te filteren met WHERE.
Wat beter is ligt uiteraard aan wat je wilt. Er is een verschil tussen de verschillende joins en dus is het belangrijk om te weten wat je wilt en wat welke join voor je doet. De volgende blog heeft mij in elk geval veel geholpen om te begrijpen wat de verschillen zijn: http://blog.sqlauthority.com/2009/04/13/sql-server-introduction-to-joins-basic-of-joins/
Alle tabellen selecteren en dan met where te filteren lijkt me in elk geval geen echte optie....
Zo wordt het in Oracle wel gedaan, daar heb je niet eens INNER e.d., alleen maar filteren in de WHERE clouse.
En Noppes, bedankt.
En Noppes, bedankt.
Ook ORACLE kent onderhand INNER / LEFT / RIGHT enz. JOINS. Maar daar gebruik ik dan wel de WHERE-clause om de JOINS te duiden.



