Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » schlauer SELECT

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.05.2006, 00:41 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Angenommen ich habe 2 Tabellen in der Art...

Table1
NR1; NR2; NR3;ATTR

Table2
NR2;JUPP

Jetzt will ich aus Table 1 Alle Datensätze für die folgendes gilt.

NR1 = vorgegebener Wert und

(NR2 aus Table1 muss in Table2 enthalten sein und JUPP muss den Wert 1 haben ODER
NR3 aus Table1 muss in Table2 als NR2 enthalten sein und JUPP muss den Wert 1 haben)

Wie formuliert man das in MYSQL als SELECT... Bisher strick ich mir das Ergebnis selber aus mehreren Selects zusammen, mich würde aber mal interessieren wie man das anderes macht wenn das spontan jemand weiß
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.05.2006, 01:30 Uhr
Pablo
Supertux
(Operator)


on the fly würde ich sowas machen


SQL:

SELECT Tabele1 t1,Tabele2 t2 WHERE t1.NR1=<dein vorgegebener Wert> AND
( (t1.NR2 == t2.NR2 AND t2.JUPP==1) OR (t1.NR3 == t2.NR2 AND t2.JUPP==1) )


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.05.2006, 09:50 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,

Zitat von Pablo:
on the fly würde ich sowas machen


Bis auf "==" (c/c++ Schädigung) und die fehlenden Felder ist das ok.
Eine weitere Möglichkeit über einen join (Bedingungswerte frei gewählt)

Code:
select t1.nr1, t1.nr2, t1.nr3, t1.attr from table1 t1 inner join table2 t2
on t1.nr2=t2.nr2
where
(t1.nr1 = 1 and t2.jupp = 1) or (t1.nr3 = t2.nr2 and t2.jupp = 1);


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 26.05.2006 um 10:55 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.05.2006, 13:26 Uhr
Feuer



ich würde auch join empfehlen ist denke ich das beste!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.05.2006, 13:31 Uhr
Pablo
Supertux
(Operator)


join hätte ich auch genommen, wenn t1.nr2 immer gleich t2.nr2 wäre, aber das ist es nicht, deswegen passt join da nicht
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.05.2006, 16:33 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
will mich jetzt nicht streiten, aber:

Zitat von Windalf:

...NR2 aus Table1 muss in Table2 enthalten...


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 26.05.2006 um 16:34 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
26.05.2006, 16:37 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat von Uwe:
Hallo,
will mich jetzt nicht streiten, aber:

Zitat:

...NR2 aus Table1 muss in Table2 enthalten...




Zitat:

(...) ODER
NR3 aus Table1 muss in Table2 als NR2 (...)


da hat pablo dann schon recht
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.06.2006, 01:31 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


So bin mal dazu gekommen das von Euch auszoprobieren.
Ich hatte es falsch formuliert gehabt. Ich hab den sql-krempel jetzt so gebastelt... Wie hübscht man den auf?


C++:
SELECT * FROM  Table1
WHERE NR1 =<was auch immer>
AND NR2 NOT IN (SELECT NR2 FROM Table2
                        WHERE JUPP = 0)
AND NR3 NOT IN (SELECT NR2 FROM Table2
                        WHERE JUPP = 0)


Funzen tuts zumindest...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
20.06.2006, 11:59 Uhr
Pler
Einer von Vielen
(Operator)


Also ich finde das bereits sehr hübsch!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: