du suchst personen die schwimmen UND Fußball spielen UND Deutsch UND Englisch sprechen?
oder du suchst a) personen die schwimmen UND Fußball spielen und b) noch zusätzlich solche die Deutsch UND Englisch sprechen?
du suchst personen die schwimmen UND Fußball spielen UND Deutsch UND Englisch sprechen?
oder du suchst a) personen die schwimmen UND Fußball spielen und b) noch zusätzlich solche die Deutsch UND Englisch sprechen?
religion is a virus from outer space
ich glaube er meint das erstere
hallo,
ich suche ersteres, also Personen die schwimmen UND Fußball spielen UND Deutsch UND Englisch sprechen.
Was nach ein paar Tests funktioniert, ist die Aneinanderreihung etlicher joins. Ich frag mich nur, ob es auch eine elegantere und schnellere Abfrage gibt...
mit ein paar subselects gings auch, falls dein mysql das unterstützt:
Code:select distinct id from sportart t1 where sportart='fussball' and exists (select null from sportart where sportart='basketball' and id=t1.id) and exists (select null from sprache where sprache='deutsch' and id=t1.id) and exists (select null from sprache where sprache='englisch' and id=t1.id);
religion is a virus from outer space
Immer diese Subselects...
Für die Einbeziehung der zweiten Tabelle kannst du einfach einen der oben beschriebenen Queries um einen JOIN erweitern.
joins wollte er ja nicht und ich finde dass subselects leichter verständlich sind als join-ketten. und was ein vernünftiges datenbanksystem wie oracle unter der haube daraus macht wieder ganz was anderes
religion is a virus from outer space
Genau den Satz hatte ich überlesenZitat von ninguno
ob es in diesem fall eleganter ist auf joins zu verzichten ist wohl fraglich.Zitat von prograbbit
geschwindigkeit würde ein index bringen (falls die id nicht eh schon primary key ist)
ansonsten den querryplan mal anschauen, um herauszufinden was da genau langsam ist
greetz
Oracle verlangsamt sogar einZitat von ninguno
SELECT * FROM table WHERE 1;
gegenüber einem
SELECT * FROM table;
MySQL, MaxDB oder MS SQLServer.
Wenn man Zeit hat, kann man ja Oracle oder Cloudscape einsetzen.
?? das erste statement ist auch kein gültiges SQL, damti ist es unendlich langsamer.Zitat von Turbohummel
-j
Doch, ist es. Funzt in jedem DBMS und 1 ist als "TRUE" in SQL 92, 99 und 03 definiert.
SQL> select * from a where 1;
select * from a where 1
*
ERROR at line 1:
ORA-00920: invalid relational operator
prograbit: gibt doch mal die komplette DB. Oder den Teil raus der deine 2 Tabellen kompletiert....wegen dem Tabellen Design ob das nicht einfacher geht.
Sinn und Zweck eines RDBMS ist ja auch redundanzen zu vermeiden.
Julius
Lesezeichen