MySQL 3.x Abfrage

Tagchen Xperten,
Nach mehrstündiger, ergebnisloser Googelei habe ich eine Frage:
Folgende Situation

Table A: ID, Name, Alter
Table B: ID, Geschlecht, Beruf

Die ID ist gewollterweise nicht UNIQUE
Abfragen:
SELECT * FROM A WHERE ID=1;
SELECT * FROM A WHERE ID=1;
A{1, Peter, 50}
A{1, Hansi, 60}

B{1, m, Tischler}
B{1, w, Eisverkäufer}

Ziel:
Ich brauche ein Resultset, das mir auf obige Tabellenbelegung folgendes Ergebnis liefert:
ID - Name - Alter - Geschlecht - Beruf
{1, Peter, 50, NULL, NULL}
{1, Hansi, 60, NULL, NULL}

{1, NULL, NULL, m, Tischler}
{1, NULL, NULL, w, Eisverkäufer}

Also in B nicht vorhandene Spalten sollen im Resultset auf NULL gesetzt werden (analog selbiges für a)

Da ich tollerweise gezwungen bin auf den MySQL 3.x Standard aufzusetzen, kann ich den Union
SELECT * FROM A WHERE ID=1
UNION
SELECT * FROM A WHERE ID=1;
Leider nicht verwenden.

Irgendwie fehlt mir an dieser Stelle sowohl Fantasie, als auch das Wissen, um weiterzukommen.
Falls es hilft: Ich bin ausserdem an den PHP 4.x Standard gebunden. Vielleicht gibts da ja eine Möglichkeit
query1 mit query2 zu verbinden.

Schönen dank schonmal

MfG
Christoph

Hallo !

Tagchen Xperten,
Nach mehrstündiger, ergebnisloser Googelei habe ich eine
Frage:
Folgende Situation

Table A: ID, Name, Alter
Table B: ID, Geschlecht, Beruf

Die ID ist gewollterweise nicht UNIQUE
Abfragen:
SELECT * FROM A WHERE ID=1;
SELECT * FROM A WHERE ID=1;
A{1, Peter, 50}
A{1, Hansi, 60}

B{1, m, Tischler}
B{1, w, Eisverkäufer}

Ziel:
Ich brauche ein Resultset, das mir auf obige Tabellenbelegung
folgendes Ergebnis liefert:
ID - Name - Alter - Geschlecht - Beruf
{1, Peter, 50, NULL, NULL}
{1, Hansi, 60, NULL, NULL}

{1, NULL, NULL, m, Tischler}
{1, NULL, NULL, w, Eisverkäufer}

Also in B nicht vorhandene Spalten sollen im Resultset auf
NULL gesetzt werden (analog selbiges für a)

Naja, nicht schön, aber geht sicher:
CREATE TABLE tmp (id int,name varchar(255), alter int, geschlecht char(1),beruf varchar(255)) // TYPE=HEAP evtl.
INSERT INTO tmp(id,name,alter) SELECT id,name,alter FROM A;
INSERT INTO tmp(id,geschlecht,beruf) SELECT id,gechlecht,beruf FROM B;
SELECT * FROM tmp;
DROP TABLE tmp;

Irgendwie fehlt mir an dieser Stelle sowohl Fantasie, als auch
das Wissen, um weiterzukommen.
Falls es hilft: Ich bin ausserdem an den PHP 4.x Standard
gebunden. Vielleicht gibts da ja eine Möglichkeit
query1 mit query2 zu verbinden.

Dann mache die Weiterverarbeitung duch einfach in einer Funktion und mache 2 SELECTS…

function process_data($data) {

}

$res = mysql_query(„SELECT id,name,alter,NULL as geschlecht,NULL as beruf FROM A“);
while($data = mysql_fetch_assoc($res)) process_data($data);
$res = mysql_query(„SELECT id,NULL as name,NULL as alter,geschlecht,beruf FROM B“);
while($data = mysql_fetch_assoc($res)) process_data($data);

Alexander

P.S.: alter ist ein reserviertes Wort und muss überall in , falls du das wirklich so nennen willst…

Danke, werd mir diese Möglichkeit mal angucken…

hab das inzwischen aders gelöst, indem ich die timestamps der beiden Tabellen samt der ID und dem jeweiligen Primary key in eine temporäre tabelle gepackt hab (mit zwei abfragen), um dann für das finale ergebnis diese temp-tabelle auszulesen.

(Weiss auch nicht, wie ich zu der irrsinnigen annahme gekommen bn, ich bräuchte alles aus beiden tabellen)

MfG
Christoph