23. januar 2007 - 16:22Der er
11 kommentarer og 1 løsning
Inner join - ON kun hvis nødvendig
Hej,
jeg har denne lille "strimmel": --------------------------------------- mysql_query("SELECT count(k.id) AS antalKommentare, sum(k.bedoem) AS antalVurderinger, a.* FROM minTabel1 AS a INNER JOIN minTabel2 AS k ON a.id = k.artikel_id $where $order $limit")or die(mysql_error()); ---------------------------------------
Problemet er, at den kun henter fra "minTabel", hvis der eksisterer en række i minTabel2 med et artikel_id matchende til artiklens id. Den skulle helst kun gøre det, hvis der er sådan et match, og hvis ikke, så gøre det alligevel.. Er det muligt?
Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
mysql_query("SELECT count(k.id) AS antalKommentare, sum(k.bedoem) AS antalVurderinger, a.* FROM minTabel1 AS a LEFT JOIN minTabel2 AS k ON a.id = k.artikel_id $where $order $limit")or die(mysql_error());
mysql_query("SELECT count(k.id) AS antalKommentare, sum(k.bedoem) AS antalVurderinger, a.* FROM minTabel1 AS a RIGHT JOIN minTabel2 AS k ON a.id = k.artikel_id $where $order $limit")or die(mysql_error());
Nu har jeg prøvet de 3 (left join, right join & left inner join), samt right inner join, og ingen af dem virker som de skal.. left inner join får siden til at fastfryse. Den når at hente cirka halvdelen af siden, og så stopper den bare og står fast. De tre andre virker bare på samme måde som min inner join..
mysql_query("SELECT count(k.id) AS antalKommentare, sum(k.bedoem) AS antalVurderinger, a.* FROM minTabel1 AS a LEFT OUTER JOIN minTabel2 AS k ON a.id = k.artikel_id $where $order $limit")or die(mysql_error());
Du ved hvordan du laver en inner join, så skal du bare lave et array med de ID'er, og lave en SELECT på den anden table med WHERE id NOT IN (1,2,3,4) osv
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.