sql sub select hjælp
Hej,Er netop vendt tilbage til noget kode jeg lavede for over et år siden. Det har virket, men vil tro at der isden da er installeret en ny mysql version på serveren.
Det er noget rodet sub select bøvl som jeg fik lidt hjælp til i sin tid og derfor ikke helt lige kan gennemskue hvor det går galt:
SELECT
part1.*, (
SELECT
COUNT(a.question_id)
FROM
bg_participants AS p
LEFT JOIN
bg_answers AS a
ON
p.participant_id = a.participant_id
AND
part1.participant_id = p.participant_id
LEFT JOIN
bg_questions AS q
ON
a.question_id = q.question_id
AND
a.answer = q.question_correct_answer
WHERE
q.question_quarter = ".intval($_GET["q"])."
GROUP BY
p.participant_id) AS answerNum FROM bg_participants AS part1 WHERE participant_subscribe = 1
")or die(mysql_error());
Får følgende fejl: Unknown column 'part1.participant_id' in 'on clause'
------------------
SQL struktur (phpMyAdmin dump):
CREATE TABLE `bg_participants` (
`participant_id` int(10) NOT NULL auto_increment,
`participant_name` varchar(100) collate latin1_danish_ci NOT NULL default '',
`participant_address` varchar(100) collate latin1_danish_ci NOT NULL default '',
`participant_zipcode` int(4) NOT NULL default '0',
`participant_city` varchar(100) collate latin1_danish_ci NOT NULL default '',
`participant_email` varchar(100) collate latin1_danish_ci NOT NULL default '',
`participant_subscribe` int(1) NOT NULL default '0',
PRIMARY KEY (`participant_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci AUTO_INCREMENT=3 ;
CREATE TABLE `bg_answers` (
`participant_id` int(10) NOT NULL default '0',
`question_id` int(5) NOT NULL default '0',
`answer` int(1) NOT NULL default '0',
UNIQUE KEY `participant_id` (`participant_id`,`question_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_danish_ci;
Håber der er en der kan gennemskue det :)
