De host waar een van mijn websites zit heeft MySQL geüpgrade naar v5.0.12, maar nu werken mijn JOIN's niet meer. Ik heb de hele JOIN-pagina (klik) door zitten spitten, maar ik wordt er echt niet wijzer uit :S

Ik heb deze query:


	SELECT
		a.id,
		a.title,
		a.imageUrl AS articleImageUrl,
		a.date,
		c.imageUrl AS catImageUrl,
		COUNT(r.replyID) AS aant_replies
	FROM
		gamercc_article a,
		gamercc_article_cats c_koppel,
		gamercc_category c
	LEFT JOIN
		gamercc_articlereply r
	ON
		a.id = r.articleID
	WHERE
		a.articleType = 'news'
	AND
		a.id = c_koppel.aid
	AND
		c.id = c_koppel.cid
	AND
		DATE_ADD(a.date, INTERVAL 3 DAY) >= NOW()
	GROUP BY
		a.id
	ORDER BY
		date DESC


Daarop geeft hij deze error:

Invalid query: Unknown column 'a.id' in 'on clause'

Wil iemand misschien de query ombouwen? Misschien beetje veeleisend, maar ik kom er niet uit :S

PS: Ik wil wel met JOIN blijven werken, want ik moet nog een hele website omzetten naar de nieuwe versie, en om er nou allemaal WHERE's voor te gaan gebruiken... Dat is met iets te veel werk.
Waar is de AS gebleven? Dus gamercc_article AS a
Hoeft niet per se toch? Zo werkt het toch ook?
Herjan schreef op 20.11.2006 18:07
Hoeft niet per se toch? Zo werkt het toch ook?

werkt toch niet ;-)
Ligt het niet aan.

@Jonathan: de query werkt niet, de aliassen wel.
SELECT
a.id,
a.title,
a.imageUrl AS articleImageUrl,
a.date,
c.imageUrl AS catImageUrl,
COUNT(r.replyID) AS aant_replies
FROM
gamercc_article a,
gamercc_article_cats c_koppel,
gamercc_category c
LEFT JOIN
gamercc_articlereply r
ON
a.id = r.articleID
WHERE
a.articleType = 'news'
AND
a.id = c_koppel.aid
AND
c.id = c_koppel.cid
AND
DATE_ADD(a.date, INTERVAL 3 DAY) >= NOW()
GROUP BY
a.id
ORDER BY
date DESC
Huh? Wat heb je veranderd? (Werkt niet trouwens)
Ik heb er left join van gemaakt ik zag de door jou gebruikte syntax namelijk niet terug op de door jou vermelde site.

Heb je hem btw al eens in PHPmyadmin gegooid?
Ow, dan ben ik die LEFT vergeten terug te zetten met experimenteren. Ik zal het ff in phpMyAdmin proberen, maar wss geeft ie daar gewoon dezelfde error.

[edit]Ja, gewoon zelfde error[/edit]

SELECT
        a.id,
        a.title,
        a.imageUrl AS articleImageUrl,
        a.date,
        c.imageUrl AS catImageUrl,
        COUNT(r.replyID) AS aant_replies
    FROM
        gamercc_article a,
        gamercc_article_cats c_koppel,
        gamercc_category c
    LEFT JOIN
        gamercc_articlereply r
    ON
        (a.id = r.articleID)
    WHERE
        a.articleType = 'news'
    AND
        a.id = c_koppel.aid
    AND
        c.id = c_koppel.cid
    AND
        DATE_ADD(a.date, INTERVAL 3 DAY) >= NOW()
    GROUP BY
        a.id
    ORDER BY
        date DESC 


enzo? zie
mysql> SELECT * FROM t1 LEFT JOIN t2 ON (t1.a = t2.a);
Nee :S

Ik vind het echt raar. Die manual van MySQL mag trouwens ook wel eens anders opgebouwd worden. (en vertaald in het Nederlands ;) )

Reageren