16. november 2007 - 15:59Der er
3 kommentarer og 1 løsning
left join og select
hvordan gør man nedenstående korrekt?
$sql = "SELECT forum.id, tmp.num FROM $DB.forum forum LEFT JOIN ( SELECT COUNT(forum.id) AS num FROM $DB.forum forum LEFT JOIN $DB._att_forum att_forum ON att_forum.contr_id=forum.id WHERE forum.thread_id=76 && forum.id!=forum.thread_id && COALESCE(att_forum.att_remove, 0)=0 GROUP BY forum.thread_id ) AS tmp";
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Hvis man laver en inner join i stedet ser det ud til at virke
$sql = "SELECT forum.id, tmp.num FROM $DB.forum forum INNER JOIN ( SELECT COUNT(forum2.id) AS num FROM $DB.forum forum2 LEFT JOIN $DB._att_forum att_forum ON att_forum.contr_id=forum2.id WHERE forum2.thread_id=76 && forum2.id!=forum2.thread_id $sql_where GROUP BY forum2.thread_id ) AS tmp";
men hvordan kan man få min where clause i min inner join (forum2.thread_id=76) ændret så den i stedet tager forum.id fra den ydre table?
hvis jeg skriver forum2.thread_id=forum.id får jeg fejl?
$sql = "SELECT forum.id, tmp.num FROM $DB.forum forum INNER JOIN ( SELECT COUNT(forum.id) AS num FROM $DB.forum forum LEFT JOIN $DB._att_forum att_forum ON att_forum.contr_id=forum.id WHERE forum.id!=forum.thread_id $sql_where GROUP BY forum.thread_id ) AS tmp ON tmp.thread_id=forum.id WHERE forum.id!=forum.thread_id";
undskyld.. sådan her.. nu får jeg dog ingen fejl, men til gengæld heller ingen udtræk..
hvem kan hjælpe mig?
$sql = "SELECT forum.id, tmp.num FROM $DB.forum forum INNER JOIN ( SELECT forum.thread_id, COUNT(forum.id) AS num FROM $DB.forum forum LEFT JOIN $DB._att_forum att_forum ON att_forum.contr_id=forum.id WHERE forum.id!=forum.thread_id $sql_where GROUP BY forum.thread_id ) AS tmp ON tmp.thread_id=forum.id WHERE forum.id!=forum.thread_id";
$sql = "SELECT forum.id, forum.subject, forum.time, att_forum.att_lock, IF(att_forum.att_stick, forum.time, 0) AS att_stick, att_forum.att_remove, tmp.max_time, tmp.num FROM ($DB.forum forum LEFT JOIN $DB._att_forum att_forum ON att_forum.contr_id=forum.id) LEFT JOIN ( SELECT forum.thread_id, MAX(forum.time) AS max_time, COUNT(forum.id)-1 AS num FROM $DB.forum forum LEFT JOIN $DB._att_forum att_forum ON att_forum.contr_id=forum.id WHERE 1 $sql_where GROUP BY forum.thread_id ) tmp ON tmp.thread_id=forum.id WHERE forum.locale_id='$LID' && forum.forum_id='$key' && forum.id=forum.thread_id $sql_where ORDER BY att_stick DESC, max_time DESC LIMIT ".$limit_arr[$key];
:)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.