Abfrage erweitern

Abfrage erweitern

am 17.07.2007 10:39:57 von 100.236719

Hallo zusammen,

aus der Tabelle "artikel_verwaltung" möchte ich zusätzliche Infos auslesen.
Der Aufbau der Tabelle:

id | eigen_id | value0| value1| name_wert | key_texte |
------------------------------------------------------------ -----
1 | 100 | 100 | null | art_1 | eigw_art1 |
2 | 100 | 101 | null | art_2 | eigw_art2 |
3 | 100 | 103 | null | art_3 | eigw_art3 |
4 | 100 | 104 | null | art_4 | eigw_art4 |
5 | 100 | 105 | null | art_5 | eigw_art5 |
6 | 100 | 106 | null | art_6 | eigw_art6 |
7 | 100 | 107 | null | art_7 | eigw_art7 |
8 | 100 | 108 | null | art_8 | eigw_art8 |
9 | 100 | 109 | null | art_9 | eigw_art9 |
10 | 100 | 110 | null | art_10 | eigw_art10 |
11 | 100 | 111 | null | art_11 | eigw_art11 |
12 | 100 | 112 | null | art_12 | eigw_art12 |
13 | 100 | 113 | null | art_13 | eigw_art13 |
14 | 100 | 114 | null | art_14 | eigw_art14 |
15 | 100 | 115 | null | art_15 | eigw_art15 |
16 | 100 | 102 | null | art_16 | eigw_art16 |
....
50 | 123 | 102 | 100 | null | null |
51 | 123 | 102 | 101 | null | null |
51 | 123 | 102 | 103 | null | null |
52 | 123 | 111 | 115 | null | null |
53 | 123 | 111 | 114 | null | null |
54 | 123 | 111 | 113 | null | null |
55 | 123 | 111 | 112 | null | null |
54 | 123 | 111 | 110 | null | null |
------------------------------------------------------------ -----


Also, die Werte in der Spalte "eigen_id" sind die "Schlössel" ID einer
Artikelgruppe, zu dieser Artikel könne Untergruppen gebildet werden,
z.B. ab ID 50 bis 51, hier wir ein Hauptgruppe nur mit Artikel gebildet
werden.

art_16
|--> art_1
|--> art_2
|--> art_3

Bis jetzt wird folgende Abfrage abgeschickt:

SELECT av.value0 AS id, av.key_texte AS name FROM
artikel_verwaltung av LEFT JOIN TextDB.texte ON av.key_texte =
texte.`key` WHERE av.eigen_id=100 order by av.name_wert asc

Also hier werden alle Artikel abgefragt die zu der Gruppe "eigen_id" 100
gehören und es werden die Artikelname aus eine andere Datenbank "TextDB".
Diese Abfrage ist vorgegeben.

Meine Frage, die Query so erweitern, dass es nur die Artikel angezeigt
werden, die entweder keine Untergruppe haben oder sie sind als
Artikelgruppe deklariert, wie im Bsp. "art_16", dh. die Artikelgruppe
"art_16" soll angezeigt werden aber die Artikel, die zu der Gruppe
zugewiesen sind sollen es nicht.

MySQL-Client-Version: 5.0.32, abfrage über phpAdmin.

Grüße bernhard

Re: Abfrage erweitern

am 17.07.2007 11:01:28 von Michael Ziegler

Servus,


bernhard.s wrote:
> art_16
> |--> art_1
> |--> art_2
> |--> art_3

Ich verstehe das so, dass alle Artikel, die dieselbe eigen_id haben,
einer Artikelgruppe zugeordnet werden. Korrekt?

In dem Fall: Warum ist grade art_16 der Hauptartikel in dieser Gruppe?
Was zeichnet den aus? Oder ist immer der Artikel mit der höchsten ID der
Hauptartikel?

> Meine Frage, die Query so erweitern, dass es nur die Artikel angezeigt
> werden, die entweder keine Untergruppe haben oder sie sind als
> Artikelgruppe deklariert, wie im Bsp. "art_16", dh. die Artikelgruppe
> "art_16" soll angezeigt werden aber die Artikel, die zu der Gruppe
> zugewiesen sind sollen es nicht.

Wenn ich das oben richtig verstanden habe, sind auch alle Artikel, die
eine einzigartige oder gar keine eigen_id haben, eine Artikelgruppe -
wenn auch nur ein Artikel drin ist - und sollen daher mit angezeigt
werden, da sie in ihrer Gruppe der Hauptartikel sind?

| SELECT av.value0 AS id, av.key_texte AS name
| FROM artikel_verwaltung av LEFT JOIN TextDB.texte
| ON av.key_texte = texte.`key`
| WHERE av.eigen_id=100
| AND ( `id` = MAX(`id`) OR `id` IS NULL )
| GROUP BY `eigen_id`
| order by av.name_wert asc


Da deine Erklärung reichlich konfus ist, schreib ich das hier ziemlich
ins Blaue hinein - vllt. rate ich ja richtig ;)

Michael

--
Testscript für RegEchsen:
http://diesundas.funzt-halt.net/regextest.php

Re: Abfrage erweitern

am 17.07.2007 12:09:33 von 100.236719

Hallo,

Michael Ziegler schrieb:
>> art_16
>> |--> art_1
>> |--> art_3
>> |--> art_2
>
> Ich verstehe das so, dass alle Artikel, die dieselbe eigen_id haben,
> einer Artikelgruppe zugeordnet werden. Korrekt?
Ja, das zu erwähnen habe ich leider vergessen :-(

> In dem Fall: Warum ist grade art_16 der Hauptartikel in dieser Gruppe?
> Was zeichnet den aus? Oder ist immer der Artikel mit der höchsten ID der
> Hauptartikel?
Nun ja, das entscheiden der User welche Gruppe eine Hauptgruppe, wurde
eine Artikel zu eine Hauptgruppe gewählt, wenn sie den Werte "100" in
der Spalte "eigen_id" hat.
Am Bsp. von "art_16", dieser Artikel hat den Wert "100" in der Spalte
"eigen_id" also kann diese Artikel als Hauptgruppe gewählt werden.
Die Artikel die zur dieser Hauptgruppe "art_16" zu geordnet werden
dürfen in der Liste der Artikel, die zu Hauptgruppe gewählt werden
können nicht mehr angezeigt werden, darum geht es.

>> Meine Frage, die Query so erweitern, dass es nur die Artikel angezeigt
>> werden, die entweder keine Untergruppe haben oder sie sind als
>> Artikelgruppe deklariert, wie im Bsp. "art_16", dh. die Artikelgruppe
>> "art_16" soll angezeigt werden aber die Artikel, die zu der Gruppe
>> zugewiesen sind sollen es nicht.
>
> Wenn ich das oben richtig verstanden habe, sind auch alle Artikel, die
> eine einzigartige oder gar keine eigen_id haben, eine Artikelgruppe -
> wenn auch nur ein Artikel drin ist - und sollen daher mit angezeigt
> werden, da sie in ihrer Gruppe der Hauptartikel sind?
Es geht in der von Dir genannten Richtung, aber.
Ein Artikel muss nicht unbedingt eine Hauptgruppe sein, es genügt das
der Wert in der Spalte "eigen_id" 100 ist. aber seien ID aus der Spalte
"value0" nicht in der Spalte "value1" erscheint, falls das der Fall ist
handelt es sich bei diesem Artikel um eine zugehörigen eine Hauptgruppe.

> Da deine Erklärung reichlich konfus ist, schreib ich das hier ziemlich
> ins Blaue hinein - vllt. rate ich ja richtig ;)
Entschuldige, leider "bin ich im Eifer des Gefechts" :-(
Ich hoffe mein Beschreibung oben hat etwas Licht gebracht.

grüße bernhard