2 Mysql Abfragen zusammenfassen

oldputz1990

Erfahrenes Mitglied
Hallo!

Ich möchte folgenede 2 Abfragen zusammenfassen:

$query1 = mysql_query(SELECT * FROM `einsatz`);
$query2 = mysql_query(SELECT * FROM `datails`);


Jetzt möchte ich die Daten der 2 Tabellen in 1 Tabelle einfügen.
(Das Abrufen kann ich...)

Danke!
 
Hallo,

Das kannst du z.B. folgendermassen machen:

SQL:
INSERT INTO tabelle AS
 SELECT ein.id, ein.name
   FROM einsatz ein
 UNION ALL
 SELECT det.id, det.name
   FROM detail det

Die Zieltabelle muss natürlich eine entsprechende Struktur haben.

Du kannst natürlich auch die Spalten, die du befüllen möchtest explizit angeben:

SQL:
INSERT INTO tabelle (id, name) AS
 SELECT ein.id, ein.name
   FROM einsatz ein
 UNION ALL
 SELECT det.id, det.name
   FROM detail det

Markus
 
Ich glaube ich habe das etwas unverstänlcih geschreiben:

ICh möchte die beiden Abfragen nicht in eine mysql Datenbank schreiben, sondern in eine Tabelle auf der Homepage (HTML)

Ich möchte eine Abfrage machen; und die Daten für die Abfrage soll von den beiden Tabellen kommen.


ICh hoffe ihr versteht was ich meine!

Dabnke!
 
Du musst mit einer while schleife und mysql_fetch_assoc die query bzw. das result durchlaufen lassen und dann per (z.B.) echo $fetch[id]; in deiner Tabelle ausgeben...
Dsa gleiche machst du mit den Werten für doie 2te Tabelle..

Lies das
 
Du meinst so?

PHP:
<?php

$query1 = mysql_query(SELECT * FROM `einsatz`);
$query2 = mysql_query(SELECT * FROM `datails`);

while(mysql_fetch_array($query1) AND mysql_fetch_array($query2))
	{
// Tabelle erstellen ....
	}

?>
 
Also ich würde es so machen:

PHP:
<?php

$query1 = mysql_query(SELECT * FROM `einsatz`);
$query2 = mysql_query(SELECT * FROM `datails`); 
    
while($result1 = mysql_fetch_assoc($query1) AND $result2 = mysql_fetch_assoc($query2) ) {
        echo $result1['foo'];
        echo $result2['bar'];
    }

?>
 
@b1rd:

Deine Schleife hat einen Haken:
Sie ist nur solange gültig, wie in beiden Tabellen die gleiche Menge an Datensätzen vorhanden sind. Was ist, wenn Tabelle 2 mehr Daten hat ?
 
Man könnte anstatt AND auch OR (oder ||) nehmen und damits keine Fehler gibt überprüfen ob noch etwas im $result1 bzw. $result2 steht.

PHP:
<?php

$query1 = mysql_query(SELECT * FROM `einsatz`);
$query2 = mysql_query(SELECT * FROM `datails`); 
    
while($result1 = mysql_fetch_assoc($query1) || $result2 = mysql_fetch_assoc($query2) ) {
        if(!empty($result1['foo'])) echo $result1['foo'];
        if(!empty($result2['bar'])) echo $result2['bar'];
}

?>
 
Danke für den Hinweis wegen meiner schleife..

Aber man muss dem ja nich alles vormachen..ein bischen selbst denken kann er ja auch..
 
Zurück