sortierung über 2 tabellen?
sortierung über 2 tabellen?
am 23.09.2005 01:44:28 von Tim Gersken
Hi!
Kleines Problem:
Ich rufe Daten nacheinander, also mit 2 Abfragen aus 2 Tabellen ab.
Beide Tabellen haben dieselbe Struktur (gekürzte, vereinfachte Darstellung)
| id | A | B | C | D |
Nun rufe ich z. B. erst bei Tab 1 alle Einträge ab, wo A = 1 ist,
danach bei Tab 2 wo A = 1 ist.
Aber was, wenn ich das Ergebnis nach C sortieren lassen möchte?
Wenn ich dies nun mache, habe ich ja erst die Ergebnisse von Tab 1
sortiert und anschliessend die Ergebnisse von Tab 2.
Beispiel:
Tab 1:
| id | A | B | C | D |
|----|---|---|---|---|
| 1 | 1 | A | A | A |
| 2 | 1 | A | C | B |
| 3 | 1 | B | B | C |
| 4 | 2 | A | C | B |
Tab 2:
| id | A | B | C | D |
|----|---|---|---|---|
| 1 | 1 | R | L | K |
| 2 | 1 | C | C | C |
| 3 | 1 | F | A | L |
| 4 | 2 | S | B | A |
wenn ich die nun separat sortiere erhalte ich nur:
| 1 | 1 | A | A | A |
| 3 | 1 | B | B | C |
| 2 | 1 | A | C | B |
| 3 | 1 | F | A | L |
| 2 | 1 | C | C | C |
| 1 | 1 | R | L | K |
hätte aber gerne:
| 1 | 1 | A | A | A |
| 3 | 1 | F | A | L |
| 3 | 1 | B | B | C |
| 2 | 1 | A | C | B |
| 2 | 1 | C | C | C |
| 1 | 1 | R | L | K |
sortiert-------^
oder kann man diese abfrage in einer query machen?
ich hoffe ich konnte das problem klar genug darstellen.
MfG
TiGer
Re: sortierung über 2 tabellen?
am 23.09.2005 05:27:29 von Niels Braczek
Tim Gersken schrieb:
> Nun rufe ich z. B. erst bei Tab 1 alle Einträge ab, wo A = 1 ist,
> danach bei Tab 2 wo A = 1 ist.
>
> Aber was, wenn ich das Ergebnis nach C sortieren lassen möchte?
> Wenn ich dies nun mache, habe ich ja erst die Ergebnisse von Tab 1
> sortiert und anschliessend die Ergebnisse von Tab 2.
Du suchst UNION.
MfG
Niels
--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´
Re: sortierung über 2 tabellen?
am 23.09.2005 15:02:26 von Mourad Boulahboub
Hi,
Am 23.09.2005, 01:44 Uhr, schrieb Tim Gersken :
> Hi!
>
> Kleines Problem:
>
> Ich rufe Daten nacheinander, also mit 2 Abfragen aus 2 Tabellen ab.
wieso nicht alle beide auf einmal mit einer Abfrage!?
> Beide Tabellen haben dieselbe Struktur (gekürzte, vereinfachte
> Darstellung)
>
> | id | A | B | C | D |
>
> Nun rufe ich z. B. erst bei Tab 1 alle Einträge ab, wo A = 1 ist,
> danach bei Tab 2 wo A = 1 ist.
>
> Aber was, wenn ich das Ergebnis nach C sortieren lassen möchte?
> Wenn ich dies nun mache, habe ich ja erst die Ergebnisse von Tab 1
> sortiert und anschliessend die Ergebnisse von Tab 2.
>
> ***************
>
> oder kann man diese abfrage in einer query machen?
wie wärs vielleicht mit
SELECT * FROM tabelle1 AS a, tabelle2 AS b where a.A = 2 OR b.A = 1 ORDER
BY a.C,b.C
>
> ich hoffe ich konnte das problem klar genug darstellen.
ich hoffe das ist das was du meintest ;)
>
> MfG
> TiGer
MfG
-Mourad-
--
Erstellt mit Operas revolutionärem E-Mail-Modul: http://www.opera.com/mail/
Re: sortierung über 2 tabellen?
am 23.09.2005 15:25:14 von Tim Gersken
Niels Braczek schrieb:
> Du suchst UNION.
Kann ich später auch rauskriegen, aus welcher der beiden Tabellen der
jeweilige Eintrag stammt?
Re: sortierung über 2 tabellen?
am 23.09.2005 16:09:45 von Hartmut Holzgraefe
Tim Gersken wrote:
> Niels Braczek schrieb:
>> Du suchst UNION.
>=20
> Kann ich später auch rauskriegen, aus welcher der beiden Tabellen =
der
> jeweilige Eintrag stammt?
SELECT 'tab1' AS tabelle, t1.field1, t1.field2, ... FROM t1 WHERE ...
UNION
SELECT 'tab2' AS tabelle, t2.field1, t2.field2, ... FROM t2 WHERE ...
--=20
Hartmut Holzgraefe, Senior Support Engineer .
MySQL AB, www.mysql.com
Re: sortierung über 2 tabellen?
am 23.09.2005 18:19:43 von Tim Gersken
Hartmut Holzgraefe schrieb:
> Tim Gersken wrote:
>
>> Niels Braczek schrieb:
>>
>>> Du suchst UNION.
>>
>>
>> Kann ich später auch rauskriegen, aus welcher der beiden Tabellen der
>> jeweilige Eintrag stammt?
>
>
> SELECT 'tab1' AS tabelle, t1.field1, t1.field2, ... FROM t1 WHERE ...
> UNION
> SELECT 'tab2' AS tabelle, t2.field1, t2.field2, ... FROM t2 WHERE ...
>
Ja schon klar, aber wenn ich das Result nun mit mysql_fetch_array
durchlaufe, wie bekomme ich zu diesem Zeitpunkt heraus, ob der Eintrag
aus tab1 oder tab2 stammt?
Re: sortierung über 2 tabellen?
am 23.09.2005 18:29:15 von Tim Gersken
Tim Gersken schrieb:
> Hartmut Holzgraefe schrieb:
>
>>Tim Gersken wrote:
>>
>>
>>>Niels Braczek schrieb:
>>>
>>>
>>>>Du suchst UNION.
>>>
>>>
>>>Kann ich später auch rauskriegen, aus welcher der beiden Tabellen der
>>>jeweilige Eintrag stammt?
>>
>>
>>SELECT 'tab1' AS tabelle, t1.field1, t1.field2, ... FROM t1 WHERE ...
>>UNION
>>SELECT 'tab2' AS tabelle, t2.field1, t2.field2, ... FROM t2 WHERE ...
>>
>
> Ja schon klar, aber wenn ich das Result nun mit mysql_fetch_array
> durchlaufe, wie bekomme ich zu diesem Zeitpunkt heraus, ob der Eintrag
> aus tab1 oder tab2 stammt?
Oops, sorry Hartmut. Hab das 'tab1' AS tabelle auf den ersten Blick
nicht gesehn und falsch gedeutet.
Danke, klappt jetzt wunderbar!