Mysql 4.0 ohne subselects, select über zwei tabellen
Mysql 4.0 ohne subselects, select über zwei tabellen
am 08.11.2006 20:40:36 von Thomas B
Hallo zusammen
Habe gemerkt, dass die Abfrage wohl doch nicht so simpel ist wie es
scheint
und hoffe bin hier richtig;-)
habe zwei tabellen.
table1
Clientid spalte1
1 A
2 A
3 B
table2
Clientid spalte1 spalte2
1 A A
1 A B
1 B A
2 A B
2 B A
3 A A
3 B A
versuche nun verzeifelt nur Clientid's welche in der table1,spalte1 ein
A haben und in table2 mit korrespondierender id KEINE Zeile mit A A
existiert
obs nun (SELECT table1.Clientid)
oder (SELECT DISTINCT table2.clientid) ist, ist mir dann auch wurst :-)
resultat wäre Clientid 2
thanx
inc.
Re: Mysql 4.0 ohne subselects, select überzwei
am 08.11.2006 21:43:55 von NOSPAM_newsgroups
Hi
incogni@gmx.de schrieb:
> =
> Hallo zusammen
> Habe gemerkt, dass die Abfrage wohl doch nicht so simpel ist wie es
> scheint
> und hoffe bin hier richtig;-)
> =
> habe zwei tabellen.
> =
> table1
> Clientid spalte1
> 1 A
> 2 A
> 3 B
> =
> table2
> Clientid spalte1 spalte2
> 1 A A
> 1 A B
> 1 B A
> 2 A B
> 2 B A
> 3 A A
> 3 B A
> =
> versuche nun verzeifelt nur Clientid's welche in der table1,spalte1 ein=
> A haben und in table2 mit korrespondierender id KEINE Zeile mit A A
> existiert
> =
> obs nun (SELECT table1.Clientid)
> oder (SELECT DISTINCT table2.clientid) ist, ist mir dann auch wurst :-)=
> resultat wäre Clientid 2
Ungetestet:
select from table1 inner join table2
on table1.id=3Dtable2.id where table1.spalte1=3D'A'
and concat(table2.spalte1,table2.spalte2)!=3D'AA'
=
Wenn null-werte vorkommen concat_ws
hth n.Olivier
-- =
Nachbagauer Olivier - www.nOlivier.com
www.reedb.com - Immobilien national & international =
Webportal der Immobilien-Branche - www.Immofinder.de
Re: Mysql 4.0 ohne subselects, select über zwei tabellen
am 08.11.2006 22:09:03 von dnoeth
incogni@gmx.de wrote:
> table1
> Clientid spalte1
> 1 A
> 2 A
> 3 B
>
> table2
> Clientid spalte1 spalte2
> 1 A A
> 1 A B
> 1 B A
> 2 A B
> 2 B A
> 3 A A
> 3 B A
>
> versuche nun verzeifelt nur Clientid's welche in der table1,spalte1 ein
> A haben und in table2 mit korrespondierender id KEINE Zeile mit A A
> existiert
Such die, die du nicht möchtest und filtere dann auf NULLs:
select t1.*
from table1 as t1 left join table2 as t2
on t1.clientid = t2.clientid
and t2.spalte1 = 'A'
and t2.spalte2 = 'A'
where t1.spalte1 = 'A'
and t2.clientid is null
Dieter
Re: Mysql 4.0 ohne subselects, select überzwei tabellen
am 08.11.2006 22:11:24 von Joachim Zobel
Am Wed, 08 Nov 2006 11:40:36 -0800 schrieb incogni:
> Hallo zusammen
> Habe gemerkt, dass die Abfrage wohl doch nicht so simpel ist wie es
> scheint
> und hoffe bin hier richtig;-)
>
> habe zwei tabellen.
>
> table1
> Clientid spalte1
> 1 A
> 2 A
> 3 B
>
> table2
> Clientid spalte1 spalte2
> 1 A A
> 1 A B
> 1 B A
> 2 A B
> 2 B A
> 3 A A
> 3 B A
>
> versuche nun verzeifelt nur Clientid's welche in der table1,spalte1 ein
> A haben und in table2 mit korrespondierender id KEINE Zeile mit A A
> existiert
Aaaah. Wieder einmal ein Fall für Left Join, den Superhelden.
SELECT t1.clientid
FROM table1 t1 LEFT JOIN table2 t2
ON t1.clientid=t2.clientid
AND t2.spalte1 = 'A'
AND t2.spalte2 = 'A'
WHERE t1.spalte1 = 'A'
AND t2.clientid IS NULL
sollte es (ungetestet) tun.
GruÃ,
Joachim
Re: Mysql 4.0 ohne subselects, select über zwei tabellen
am 08.11.2006 23:14:21 von Thomas B
Genau so muss Sie sein...die query
Das war liebe auf den ersten Blick...habs aber trotzdem noch kurz
getestet:-)
Vielen herzlich Dank!
Re: Mysql 4.0 ohne subselects, select über zwei tabellen
am 09.11.2006 08:44:16 von dnoeth
Joachim Zobel wrote:
> SELECT t1.clientid
> FROM table1 t1 LEFT JOIN table2 t2
> ON t1.clientid=t2.clientid
> AND t2.spalte1 = 'A'
> AND t2.spalte2 = 'A'
> WHERE t1.spalte1 = 'A'
> AND t2.clientid IS NULL
Zwei Doofe, ein Gedanke ;-)
Dieter
Re: Mysql 4.0 ohne subselects, select überzwei tabellen
am 09.11.2006 22:28:52 von Joachim Zobel
Am Thu, 09 Nov 2006 08:44:16 +0100 schrieb Dieter Noeth:
> Zwei Doofe, ein Gedanke ;-)
Das faszinierende ist die (bis auf case und Feldliste) 100%ige
Ãbereinstimmung.
GruÃ,
Joachim