Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Datenbanken ::  Problem mit Mehrfach-Feld-Abfrage  
Gehen Sie zu Seite Zurück  1, 2
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
Zebald
Mitglied

Benutzerprofil
Anmeldungsdatum: 17.08.2005
Beiträge: 37
Beitrag Zebald Mitglied 21:41:06 09.12.2011   Titel:              Zitieren

ihhDonkey schrieb:
Zebald schrieb:
Gibt es in Deinem obigen Beispiel eine fID für die Du ein nichtleeres Ergebnis bekommen kannst, wenn du Deine gewünschte Abfrage ausführst?


Wie meinst Du das?


Danit wollte ich Dir letztendlich sagen, dass für Dein Beispiel keine fIDs existieren, für die Deine Aufgabenstellung gilt.
ihhDonkey
Unregistrierter




Beitrag ihhDonkey Unregistrierter 23:43:15 11.12.2011   Titel:              Zitieren

Im meinem Beispiel gibt es tatsächlich keinen solchen Fall. In meiner realen Anwendung aber schon. Hier also noch Mal das Problem:

Eine fID hat bestimmte gID-Einträge z.B. 7,18,26. Gesucht werden sollen jetzt alle fIDs die ebenfalls diese gID-Einträge enthalten, also auch 7,18,26.

Wer hat eine möglichst effiziente Lösung zu diesem Problem?
Wutz
Mitglied

Benutzerprofil
Anmeldungsdatum: 15.04.2010
Beiträge: 2103
Beitrag Wutz Mitglied 13:25:57 13.12.2011   Titel:              Zitieren

Code:
select fID from tG where gID in(7,18,26) group by fID having count(*)=3
Code:
select fID from tG where gID in(7,18,26) group by fID having count(*)=3
Code:
select fID from tG where gID in(7,18,26) group by fID having count(*)=3

_________________
Java, the best argument for Smalltalk since C++. -- Frank Winkler
Zebald
Mitglied

Benutzerprofil
Anmeldungsdatum: 17.08.2005
Beiträge: 37
Beitrag Zebald Mitglied 21:30:56 14.12.2011   Titel:              Zitieren

ihhDonkey schrieb:
Im meinem Beispiel gibt es tatsächlich keinen solchen Fall. In meiner realen Anwendung aber schon. Hier also noch Mal das Problem:

Eine fID hat bestimmte gID-Einträge z.B. 7,18,26. Gesucht werden sollen jetzt alle fIDs die ebenfalls diese gID-Einträge enthalten, also auch 7,18,26.

Wer hat eine möglichst effiziente Lösung zu diesem Problem?


Hi, ich habe jetzt nicht allzuviel Zeit. Deswegen eine nicht 100%tig durchdachte Query, die das liefert, was ich denke das Du meinst.
Code:
create view asdftest(g1,g2) as  (select distinct x.fID as g1, y.fID as g2
from te x, te y
where x.fID <> y.fID and not exists (select a.gID from tG a where a.fID=x.fID and not exists (select b.gID from tG b where y.fID=b.fID and a.gID=b.gID)));

select distinct res.g1 as fID , res.g2 as "fIDs mit genau gleichen gIDs"
from asdftest res, asdftest res1
where res.g1=res1.g2;
Code:
create view asdftest(g1,g2) as (select distinct x.fID as g1, y.fID as g2
from te x, te y
where x.fID <> y.fID and not exists (select a.gID from tG a where a.fID=x.fID and not exists (select b.gID from tG b where y.fID=b.fID and a.gID=b.gID)));

select distinct res.g1 as fID , res.g2 as "fIDs mit genau gleichen gIDs"
from asdftest res, asdftest res1
where res.g1=res1.g2;
Code:
create view asdftest(g1,g2) as  (select distinct x.fID as g1, y.fID as g2
from te x, te y
where x.fID <> y.fID and not exists (select a.gID from tG a where a.fID=x.fID and not exists (select b.gID from tG b where y.fID=b.fID and a.gID=b.gID)));

select distinct res.g1 as fID , res.g2 as "fIDs mit genau gleichen gIDs"
from asdftest res, asdftest res1
where res.g1=res1.g2;

(kann man natürlich auch zusammenfassen oder mit with formulieren... wahrscheinlich kann man das auch noch vereinfachen und sauberer machen)
C/C++ Forum :: Datenbanken ::  Problem mit Mehrfach-Feld-Abfrage  
Gehen Sie zu Seite Zurück  1, 2
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.