Ich mache zwei Anfrage, um einen Wert zu bekommen. Meiner Meinung nach wäre man schneller. Ich denke, der beste Weg ist, mitzumachen. Dies ist mein Code:Linke beitreten, innere verbinden, beitreten?
$uid = db_query("SELECT uid FROM TABLE1 WHERE mail = '{$account->mail}' LIMIT 1");
$row = mysql_fetch_array($uid);
$uid = $row[0];
$brief = db_query("SELECT value FROM Table2 WHERE uid = '{$uid}' AND fid = '16' LIMIT 1");
$row = mysql_fetch_array($brief);
$brief = $row[0];`
Wie kann ich diese beiden Anforderungen zu einem zusammenführen?
Vielen Dank im Voraus!
Dies ist ein kartesisches Produkt. $ uid-Variable ist von der ersten Abfrage, ich glaube, Sie wollten 'TABLE2.uid = TABLE1.uid' schreiben. Aber um ehrlich zu sein, ich bin kein Fan der alten Syntax, die Syntax mit INNER JOIN (oder NATURAL INNER JOIN) ist viel klarer. –
@Vincent Savard: Ja, es ist theoretisch ein kartesisches Produkt, aber verhindert "LIMIT 1" das nicht? – thejh
@thejh: Es ist immer noch ein kartesisches Produkt, Sie haben keine Ahnung, welche Zeile zuerst abgeglichen wird. Aber es wird sowieso nicht funktionieren, weil $ uid nicht existiert (wie gesagt, es ist von seiner ersten Abfrage). –