Abfrage 2er Tabellen

Thomas_Jung

Erfahrenes Mitglied
Abfrage 2er Tabellen phpmyadmin/mysql

Hallo

Ich habe 2 gleiche Tabellen in der Datenbank test

Tabelle 1 = tabelle1
Tabelle 2 = tabelle2

Felder je Tabelle
id auto_increment Primärschlüssel
Firma int(4)
Nr int(6)

Indizes:
PRIMARY PRIMARY = id
Firma_Nr = UNIQUE


Nun möchte ich mit einer Abfrage wissen ob es von der tabelle2 bereits Datensätze in der tabelle1 gibt
wenn ja wie zeige ich sie an.

Versuch:

Code:
$sql = "SELECT id, Firma, Nr FROM tabelle1 INNER JOIN tabelle2
ON ((tabelle1.Firma = tabelle2.Firma) and (tabelle1.Nr = tabelle2.Nr )
WHERE Firma ='3'";
$res = mysql_query($sql);

Gruß Thomas
 
Zuletzt bearbeitet:
Probier mal bitte:
SQL:
SELECT tabelle2.id, tabelle2.Firma, tabelle2.Nr 
FROM tabelle1, tabelle2
WHERE tabelle1.Firma=tabelle2.Firma
AND tabelle1.Nr=tabelle2.Nr
AND tabelle1.Firma='3';
 
Zuletzt bearbeitet von einem Moderator:
Hallo Sinac

1 Frage habe ich noch.
Mit folgendem Code zeige ich mir die Firma und Nummer des Datensatzes von tabelle2 an.
Wie kann ich mir auch die Firma und Nummer des Datensatzes von tabelle1 anzeigen lassen

Code:
$res = mysql_query($sql);
if (!$res) { echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error(); };
$num = mysql_num_rows($res);

for ($i = 0; $i < $num; $i++) {
$Firma = mysql_result($res, $i, "Firma");
$Nr = mysql_result($res, $i, "Nr");

    echo $Firma;echo $Nr;
}

Gruß Thomas
 
Eigentlich müsstest du die einfach mit in die Abfrage eintragen können
SQL:
SELECT tabelle1.id, tabelle1.Firma, tabelle1.Nr, tabelle2.id, tabelle2.Firma, tabelle2.Nr 
FROM tabelle1, tabelle2
WHERE tabelle1.Firma=tabelle2.Firma
AND tabelle1.Nr=tabelle2.Nr
AND tabelle1.Firma='3';
und dann einfach mit aus dem Resultset holen.
 
Zuletzt bearbeitet von einem Moderator:
Hallo Sinac


Code:
for ($i = 0; $i < $num; $i++) {

//Das ist klar
$Firma = mysql_result($res, $i, "Firma");
$Nr = mysql_result($res, $i, "Nr");
echo $Firma;
echo $Nr;

// Habe keine Ahnung habe so etwas über 2 Tabelle noch nicht gemacht.
//Kannst du mir ein Beispiel nennen :)
$Firma2 = mysql_result($res, $i, "tabelle2.Firma");
$Nr2 = mysql_result($res, $i, "tabelle2.Nr");
echo $Firma2;
echo $Nr2;


}

Gruß Thomas
 
Ich würde das vielleicht auch eher mit mysql_fetch_object oder mysql_fetch_assoc machen:
PHP:
$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res)){
      echo "<br/>Tabelle1 Firma: ".$row['tabelle1.Firma'];
      echo "<br/>Tabelle1 Nr: ".$row['tabelle1.Nr'];
      echo "<br/>Tabelle2 Firma: ".$row['tabelle2.Firma'];
      echo "<br/>Tabelle2 Nr: ".$row['tabelle2.Nr'];
}
 
Hallo Sinac

Ist diese Version schneller/besser ?

$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res)){
echo "<br/>Von Tabelle2 Firma: ".$row['Firma'];
echo "<br/>Von Tabelle2 Nr: ".$row['Nr'];


----------------- --> Wie zeige ich die Inhalte aus der 1 Tabelle an. <--------------------

echo "<br/>Von Tabelle1 Firma: ".$tabelle1.$row.['Firma']; -?-?- -?-?--?-?--?-?-
echo "<br/>Von Tabelle1 Nr: ".$row['$tabelle2.Nr']; ?-?-?--?-?--?-?--?-?-

Gruß Thomas
 
Zuletzt bearbeitet:
Sorry, ich verstehe das Problem nicht so ganz...
Wenn du in deinem SELECT Statement Felder aus Tabelle1 abfragst (siehe oben), dann kannst du diese auch aus dem Resultset z.B. über mysql_fetch_assoc() ansprechen, und zwar über den Feldnamen aus dem SELECT.
 
Hallo Sinac

Habe Namenskonflikte bei der Abfrage bekommen verwende jetzt Aliasnamen.

Vielen Dank für deine Geduld. ;-)

Hätte früher aufhören sollen zu Arbeiten dann wäre mir das auch aufgefallen.:-(

Gruß Thomas
 

Neue Beiträge

Zurück