PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : brauche hilfe bei einen LEFT JOIN



Hardy
25.03.2008, 10:14
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:

Hardy
25.03.2008, 21:31
keiner ne idee :-(

Gremlin
25.03.2008, 22:55
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');

Hardy
27.03.2008, 20:40
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:)

Gremlin
27.03.2008, 21:20
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