Je echoed sowieso 3 velden die je helemaal niet selecteert.quote:Op woensdag 9 februari 2011 10:03 schreef MrNiles het volgende:
het begint nu echt lastig te worden om dingen te gaan combineren
iets gaat er nu goed
[ code verwijderd ]
hoe krijg ik nu de uitkomst van de left join op het scherm
zo dus niet..want ik krijg een hoop:
Notice: Undefined index: on line 24 en 25 en 26...niet goed dus
Moet je even kijken naar de encoding.quote:Op woensdag 9 februari 2011 10:11 schreef boem-dikkie het volgende:
Weet iemand hier trouwens waar het aan kan liggen dat ik heel vaak geen leden kan toevoegen met speciale tekens in hun naam? Nu weer iemand die niet in de database kan omdat hij een C met een circumflex is zijn naam heeft staan. Ledennaam heeft gewoon VARCHAR als type.
http://en.wikipedia.org/wiki/Character_encodings_in_HTMLquote:Op woensdag 9 februari 2011 10:12 schreef erikkll het volgende:
[..]
Moet je even kijken naar de encoding.
Sorry, leek wat dat betreft. Encoding, wie, wat, waar?quote:Op woensdag 9 februari 2011 10:12 schreef erikkll het volgende:
[..]
Moet je even kijken naar de encoding.
Het linkje van cablegunmaster kun je denk ik wel wat mee!quote:Op woensdag 9 februari 2011 10:12 schreef boem-dikkie het volgende:
[..]
Sorry, leek wat dat betreft. Encoding, wie, wat, waar?
daarnaast in phpmyadmin staat in elke tabel een collatie: latin1_swedish_ciquote:Op woensdag 9 februari 2011 10:12 schreef boem-dikkie het volgende:
[..]
Sorry, leek wat dat betreft. Encoding, wie, wat, waar?
quote:SELECT ticketid, dateline AS opentime
FROM `swauditlogs`
WHERE `actiontype` =11
AND `actionmsg` LIKE '%trinicom%'
quote:SELECT ticketid, dateline AS closetime
FROM `swauditlogs`
WHERE `actiontype` =8
AND `actionmsg` LIKE '%Nog te factureren%'
Heb ik gecombineerd tot deze query:quote:SELECT ticketid, subject FROM `swtickets` WHERE `ticketstatusid` =3 OR ticketstatusid =4 AND email LIKE '%trinicom%'
Nu wil ik er graag nog een query bij joinen:quote:SELECT statusticketid, statussubject, opentime, MAX(closetime) as close_time, email
FROM
(SELECT email, ticketid AS statusticketid, subject AS statussubject FROM `swtickets` WHERE `dateline` < $closetime AND `dateline` > $opentime AND ( `ticketstatusid` =3 OR ticketstatusid =4) AND `email` LIKE '%trinicom%' ) AS TMP3
LEFT JOIN
(SELECT openticket, opentime, closetime FROM (SELECT ticketid AS openticket, dateline AS opentime FROM `swauditlogs` WHERE `dateline` > $opentime AND `dateline` < $closetime AND `actiontype` =11) as TMP1
LEFT JOIN
(SELECT ticketid AS closeticket, dateline AS closetime FROM `swauditlogs` WHERE `actiontype` =8 AND ( `dateline` > $opentime AND `dateline` < $closetime) AND `actionmsg` LIKE '%Nog te factureren%' ) as TMP2
ON openticket=closeticket) AS TMP4
ON openticket=statusticketid
WHERE email LIKE '%trinicom%'
GROUP BY statusticketid
";
Hoe kan ik dat als extra join toevoegen?quote:SELECT ticketid, dateline AS opentime
FROM `swauditlogs`
WHERE `actiontype` =12
AND `actionmsg` LIKE '%trinicom%'
Alleen de collation van het veld is belangrijk.quote:Op woensdag 9 februari 2011 10:16 schreef erikkll het volgende:
Kijk in phpmyadmin hoe de collation op je database tabel is. Stel deze bijvoorbeeld in op utf8_general.
Gebruik vervolgens als encoding voor je html ook UTF-8 en het zou goed moeten zijn.
Paradox in wat je vraagt.quote:Op woensdag 9 februari 2011 10:19 schreef erikkll het volgende:
Deze 3 queries:
[..]
[..]
[..]
Heb ik gecombineerd tot deze query:
[..]
Nu wil ik er graag nog een query bij joinen:
[..]
Hoe kan ik dat als extra join toevoegen?
nee ... where actiontype = 12 and actiontype = 11 ? Wtf?quote:Op woensdag 9 februari 2011 10:23 schreef boem-dikkie het volgende:
Dat heb je in principe toch ook al gedaan met die queries daarboven?
Precies, actiontype = 11 OR actiontype = 12 should do the trick.quote:Op woensdag 9 februari 2011 10:24 schreef cablegunmaster het volgende:
[..]
Paradox in wat je vraagt.
[..]
nee ... where actiontype = 12 and actiontype = 11 ? Wtf?
Ja ik weet het. Maar hoe kan ik ze dan op een mooiere manier joinen? Ik snap niet hoe dat zou moeten als ze uit dezelfde table komen. Daarom maak ik nu van elke resultset eerst een tijdelijke tabel met een andere naam, om ze vervolgens te joinen... Dat kan vast mooierquote:Op woensdag 9 februari 2011 10:26 schreef GlowMouse het volgende:
Je moet queries niet combineren, je moet joinen. Je maakt nu 4 temporary tables en komt met een onleesbare brij.
meer ANDS toevoegen of een OR .quote:Op woensdag 9 februari 2011 10:32 schreef erikkll het volgende:
[..]
Ja ik weet het. Maar hoe kan ik ze dan op een mooiere manier joinen? Ik snap niet hoe dat zou moeten als ze uit dezelfde table komen. Daarom maak ik nu van elke resultset eerst een tijdelijke tabel met een andere naam, om ze vervolgens te joinen... Dat kan vast mooier
Nee, je zou het je zo voor moeten stellen:quote:Op woensdag 9 februari 2011 10:26 schreef Scorpie het volgende:
[..]
Precies, actiontype = 11 OR actiontype = 12 should do the trick.
Maar ik zou sowieso die query brij eens goed uit elkaar trekken, dit gaat nergens over
1 2 3 4 5 | SELECT t.ticketid AS statusticketid, subject AS statussubject,al1.ticketid as openticket, al1.dateline AS opentime, al2.ticketid as closeticket, al2.dateline AS closetime FROM swtickets t JOIN swauditlogs al1 ON(t.ticket=al1.ticket AND al1.actiontype =11 AND al1.actionmsg LIKE '%trinicom%'); JOIN swauditlogs al2 ON(t.ticket=al2.ticket AND al2.actiontype=8 AND al2.actionmsg LIKE '%Nog te factureren%') WHERE t.ticketstatusid=3 OR t.ticketstatusid=4 AND email LIKE '%trinicom%' |
die van glowmouse is netter en de mijne is nog niet uitgepluist op AND en ORSquote:Op woensdag 9 februari 2011 10:42 schreef erikkll het volgende:
Ik zal jullie beide queries eens proberen Super!
succesquote:Op woensdag 9 februari 2011 10:52 schreef erikkll het volgende:
Jullie oplossingen werken allebei niet, maar het idee is me wel duidelijk hoe ik dit netter kan oplossen!
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |