SELECT-Befehl

SELECT-Befehl

am 03.06.2005 15:58:21 von Manuel Seber

Hallo,

ich (NEWBE) möchte folgenden SELECT-Befehl ausführen lassen:

SELECT FELD1 AS ALIAS1 FROM TABELLE1 WHERE id = X UNION
SELECT FELD1 AS ALIAS2 FROM TABELLE1 WHERE id = Y;

kriege aber als Ergebnis (in PHP) nur folgendes Array:

Array ( [ALIAS1] => "xxxxxx1" )

und in PHPMyAdmin folgendes Ergebnis:

ALIAS1
xxxxxx1
xxxxxx2

Wie muss ich also die beiden SELECT-Befehle verbinden damit ich als Ergebnis

Array ( [ALIAS1] => "xxxxxx1"
[ALIAS2] => "xxxxxx2" )

bekomme?

Vielen Dank für die Hilfe

Re: SELECT-Befehl

am 03.06.2005 16:46:28 von Hartmut Holzgraefe

Manuel Seber wrote:
> Hallo,
>=20
> ich (NEWBE) möchte folgenden SELECT-Befehl ausführen lassen:
>=20
> SELECT FELD1 AS ALIAS1 FROM TABELLE1 WHERE id =3D X UNION
> SELECT FELD1 AS ALIAS2 FROM TABELLE1 WHERE id =3D Y;

warum nicht einfach

SELECT FELD1 FROM TABELLE1 WHERE id =3D X OR id =3D Y;

oder

SELECT FELD1 FROM TABELLE1 WHERE id IN(X,Y);

?

> kriege aber als Ergebnis (in PHP) nur folgendes Array:
>=20
> Array ( [ALIAS1] =3D> "xxxxxx1" )

Und *wie* (code) kommst du zu diesem Ergebnis?

Das sieht schwer so aus als ob du nur die erste Ergebniszeile
per mysql_fetch_...() abfragst statt über die gesamte Ergebnismenge
zu iterieren?


> Wie muss ich also die beiden SELECT-Befehle verbinden damit ich als=20
> Ergebnis
>=20
> Array ( [ALIAS1] =3D> "xxxxxx1"
> [ALIAS2] =3D> "xxxxxx2" )
>=20
> bekomme?

Wenn du es wirklich in dieser Form brauchst dann so

SELECT t1.FELD1 AS ALIAS1, t2.FELD1 AS ALIAS2
FROM TABELLE1 t1, TABELLE1 t2
WHERE t1.id =3D X AND t2.id =3D Y

Aber ich glaube du willst die Werte einfach nacheinander
auslesen und nicht auf diese Art verknüpfen ...

--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

Re: SELECT-Befehl

am 03.06.2005 17:06:28 von Manuel Seber

Hartmut Holzgraefe schrieb:
> Wenn du es wirklich in dieser Form brauchst dann so
>
> SELECT t1.FELD1 AS ALIAS1, t2.FELD1 AS ALIAS2
> FROM TABELLE1 t1, TABELLE1 t2
> WHERE t1.id = X AND t2.id = Y
>
> Aber ich glaube du willst die Werte einfach nacheinander
> auslesen und nicht auf diese Art verknüpfen ...
>

Das war genau das, was ich gesucht habe. VIELEN HERZLICHEN DANK!

Noch ne kleine Frage: Für was steht das t1 und das t2?

Danke

Re: SELECT-Befehl

am 03.06.2005 17:14:18 von Hartmut Holzgraefe

Manuel Seber wrote:
> Hartmut Holzgraefe schrieb:
>=20
>> Wenn du es wirklich in dieser Form brauchst dann so
>>
>> SELECT t1.FELD1 AS ALIAS1, t2.FELD1 AS ALIAS2
>> FROM TABELLE1 t1, TABELLE1 t2
>> WHERE t1.id =3D X AND t2.id =3D Y
>>
>> Aber ich glaube du willst die Werte einfach nacheinander
>> auslesen und nicht auf diese Art verknüpfen ...
>>
>=20
> Das war genau das, was ich gesucht habe. VIELEN HERZLICHEN DANK!
>=20
> Noch ne kleine Frage: Für was steht das t1 und das t2?

Table-Aliases, du willst ja schließlich unterscheiden können
aus welcher Tabellen-Instanz die Felder kommen. In dieser
Schreibweise wirds vermutlich deutlicher:

SELECT t1.FELD1 AS ALIAS1, t2.FELD1 AS ALIAS2
FROM TABELLE1 AS t1, TABELLE1 AS t2
WHERE t1.id =3D X AND t2.id =3D Y




--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com

Re: SELECT-Befehl

am 03.06.2005 17:16:48 von Manuel Seber

Danke, echt super!