Archiv verlassen und diese Seite im Standarddesign anzeigen : brauche hilfe bei einen LEFT JOIN
Hi um daten aus 2 tabellen auszulesen wollte ich folgenden left join benutzen
$sperrung_checken2 = db_query("SELECT t3.*
FROM vms_sperrung t3
LEFT JOIN vms_kontodaten t4
ON (t3.uid=t4.uid)
WHERE t3.uid= '".$_GET['uid']."' LIMIT 1");
(natürlich das ganze dann noch in array gesetzt)
Aus der tabelle vms_sperrung wird nun auch alles richtig ausgelesen allerdings nicht aus der tabelle kontodaten kann mir da mal einer sagen woran das liegt :sosp:
So müsste es gehen:
$sperrung_checken2 = db_query('SELECT t3.*,t4.*
FROM vms_sperrung t3
LEFT JOIN vms_kontodaten t4 ON t3.uid=t4.uid
WHERE t3.uid= '.(INT)$_GET['uid'].' LIMIT 1');
Danke gremlin.
wo liegt den eigentlich der unterschied ob ich das so aufrufe
db_query("SELECT....")
oder so
db_query('SELECT....')
?
und mal noch eine andere frage...
Wenn ich zb so einen join aufrufe
SELECT A.*, B.*,C.*
FROM Tabelle1 As A, Tabelle2 As B,Tabelle3 As C
und tabelle1 und tabelle2 haben zb die selbe spalte 'id'.
wie muss der code nun lauten wenn ich id aus tabelle 1 und id aus tabelle 2 auslesen will?
(oh man ich hoffe das ist einigermaßen verständlich:out:)
Hi,
dann fang ich mal an :biggrin:
Also Unterschied zwischen db_query("") und db_query('') ist das bei db_query("") automatisch alle Variablen umgewandelt würden (was zusätzlich Zeit benötigt (parsen))
Beispiel (mit Echo, aber ist das gleiche)
$variable = 'Demo';
echo "$variable";
echo '$variable';
Das würde folgendes ausgeben
Demo
$variable
Wegen dem Feldproblem das kannst du so lösen:
Nehmen wir an tabelle table1 hat ein Feld uid und table2 hat auch ein Feld uid und du möchtest beide haben ;) dann machst du einfach statt:
SELECT table1.uid, table2.uid
was zu einem Fehler führen würde folgendes:
SELECT table1.uid, table2.uid AS t2_uid
Die uid aus table2 lautet nun t2_uid.
Hoffe ist verständlich :thumbsup:
Gruß
Gremlin
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.