Group by mit einem Vergleich (?)
Group by mit einem Vergleich (?)
am 10.04.2005 20:11:55 von Lorenz Haas
Hallo,
ich habe -wie könnte es anders sein- ein kleines Problem. Ich habe eine
Tabelle, in der u.A. zwei Spalten, wir nennen sie A und B sind. A ist eine
numerische ID die nicht unique ist. B ist ein Integerfeld. Nun möchte ich
durch eine Abfrage all diejenigen A's bekommen, bei deren Vorkommen B immer
NULL ist.
Kleines Beispiel:
A | B
-----+-----
1 | NULL
1 | 3
2 | NULL
3 | NULL
3 | NULL
Als Ergebnis hätte ich gerne von A 2 und 3.
Was ich habe ist nich viel, nur
SELECT * FROM tabelle GROUP BY A.
Was fehlt ist halt, dass bei allen Vorkommnissen von A B==NULL sein soll.
Eine Subquerry scheidet aus da die Version < 4.1 ist :-(
Danke für Hinweise,
Lorenz
--
----------------------------------------
Alle wichtigen Leute haben eine Signatur.
Ich jetzt auch!
Re: Group by mit einem Vergleich (?)
am 10.04.2005 22:45:10 von newsgroup
Lorenz Haas schrieb:
> Als Ergebnis hätte ich gerne von A 2 und 3.
> Was ich habe ist nich viel, nur
> SELECT * FROM tabelle GROUP BY A.
> Was fehlt ist halt, dass bei allen Vorkommnissen von A B==NULL sein soll.
Mit einem Selfjoin müsste das realisierbar sein:
SELECT a.* FROM tabelle AS a
LEFT JOIN tabelle AS b ON b.id = a.id AND b.val IS NOT NULL
WHERE b.id IS NULL GROUP BY a.id
HTH
Monty
Re: Group by mit einem Vergleich (?)
am 10.04.2005 23:00:26 von Niels Braczek
Lorenz Haas schrieb:
> [MySQL-Problem ohne PHP-Bezug]
11 Minuten vor deinem Posting wurde hier der Hinweis auf die Charta und
verwandte Newsgroups gepostet. Dort steht:
,---
| Für Fragen die ausschliesslich MySQL betreffen gibt es die Newsgroup
| .
| Die FAQ der MySQL-Newsgroup findet sich unter dem URL
| .
`---
Warum ignorierst du das?
MfG
Niels
Re: Group by mit einem Vergleich (?)
am 11.04.2005 13:31:53 von Stefan Rybacki
Lorenz Haas wrote:
> Hallo,
Hi
>
> ich habe -wie könnte es anders sein- ein kleines Problem. Ich habe eine
> Tabelle, in der u.A. zwei Spalten, wir nennen sie A und B sind. A ist eine
> numerische ID die nicht unique ist. B ist ein Integerfeld. Nun möchte ich
> durch eine Abfrage all diejenigen A's bekommen, bei deren Vorkommen B immer
> NULL ist.
>
> Kleines Beispiel:
>
> A | B
> -----+-----
> 1 | NULL
> 1 | 3
> 2 | NULL
> 3 | NULL
> 3 | NULL
>
>
> Als Ergebnis hätte ich gerne von A 2 und 3.
> Was ich habe ist nich viel, nur
> SELECT * FROM tabelle GROUP BY A.
> Was fehlt ist halt, dass bei allen Vorkommnissen von A B==NULL sein soll.
>
> Eine Subquerry scheidet aus da die Version < 4.1 ist :-(
>
> Danke für Hinweise,
> Lorenz
probier dies:
SELECT A,sum(B) as sumb
FROM `tabelle` GROUP BY A HAVING sumb IS NULL
Bis denn dann
Stefan
Re: Group by mit einem Vergleich (?)
am 13.04.2005 16:04:07 von Andreas Froede
Lorenz Haas wrote:
> numerische ID die nicht unique ist. B ist ein Integerfeld. Nun möchte ich
> durch eine Abfrage all diejenigen A's bekommen, bei deren Vorkommen B immer
> NULL ist.
Du fragst in einer Datenbankgruppe oder beschäftigst Dich mit Having
CIAO
andreas
--
Klettermailingliste Jena: http://www.wand.spider-net.de/mailing
Klettern in Thüringen: http://www.climb.spider-net.de
Kletterhalle in Jena: http://www.wand.spider-net.de