14. juli 2008 - 22:07Der er
9 kommentarer og 1 løsning
Samle 2 SQL sætninger
Hej,
Idag har jeg: $result_tilmeldte = mysql_query("SELECT * FROM tilmeldte WHERE typeid = '$typeid'") or die ("Henter Tilmeldte: Der skete følgende fejl".mysql_error().""); $numtilmeldte = mysql_num_rows($result_tilmeldte);
while ($row_tilmeldte = mysql_fetch_array($result_tilmeldte)) {
$result_medlem = mysql_query("SELECT * FROM medlemmer WHERE id = '$row_tilmeldte[medlemid]'") or die ("Henter Medlemmer: Der skete følgende fejl".mysql_error().""); $row_medlem = mysql_fetch_array($result_medlem);
echo $row_medlem[fornavn]."<br>";
}
Kan det gøres mere optimalt eller er det lige meget med at skulle samle de 2 SQL sætninger til 1 ? Der er vist noget INNER JOIN, men kan bruge eller er det mig som er gal på den ?
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
Med de rette indexer er inner joins i reglen fine. Inner joins er som regel gode til performance i forhold til outer joins som kan være grumme, specielt med forskellige where og order/group by...
Du skal bare have index på tilmeldte felter medlemid og typeid samt på medlemmer id (sikkert primary key, så andet index ikke nødvendigt)...
Man kan se hvordan ens query opfører sig ved at bruge EXPLAIN efterfulgt af din SQL-sætning...
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.