MSAccess Inner Join über 2 Tabellen mit Group und Where - Problem

  • Hi

    Ich mal wieder...
    Ich brauche einene MSAccess Hilfe.
    Habe die DB angehangen so sollte es für euch einfach sein.

    es gibt zwei Tabellen

    objekte und objkeys ... verbunden mit objekte.objid = objkeys.parentid

    führe ich nun folgendes aus


    bekomme ich zwei Ergebnisse -> alle OK

    mache ich jetzt nur objkeys.okeydata LIKE '9%' dazu <- 999 ( der Editor schluckt das Prozent neun neun )


    bekomme ich nichts mehr??
    Warum?

    Nach meinem Verständnis verbinde ich die Tabellen übers INNER JOIN selektiere über WHERE und Grupiere dann über GROUP damit ich auf die ID usw komme

    MFG chris :D

  • Ähm, ja. Da kann nichts rauskommen:
    objkeys.okeyno LIKE 0 AND objkeys.okeyno LIKE 3
    Ein Feld kann nicht gleichzeitig 0 und 3 sein :D

  • Hi..

    Ja das leuchtet mir ein...
    Ich versuche mal zu beschreiben auf was ich hinaus muss...

    Es dreht sich hier um eine Suchfunktion für Dateien mit Atributen
    objekte ist die Haupttabelle mit objekte.objid als verbindung zu objkeys und z.b. objekte.objshort [id 8] einer Kurzbezeichnung
    zu einer datei z.b. objekte.objid [id 8] gibt es bis zu 6 Atribute in den objkeys

    zu [id 8] in objkeys

    SQL
    parentid	okeyno	okeyname	okeydata	okeysdata
    8							0	Kunde	Contelo GmbH	cundelu cmb
    8	1	BE-Datum	17.02.2009	17 02 209
    8	2	BE-Nummer	0123	0123
    8	3	BE-Wert	999	9
    8	4	Bemerkung	bemerkung	bemercd
    8	51	ELO_FNAME	S20080820172451.TIF	s2080820172451 dyv

    d.h. wenn ich jetzt eine Datei suche möchte ich nicht nur in objekte suchen sondern auch nach Atributen der Dateien suchen.
    Ich denke ich bin nur etwas falsch an das ganze ran gegangen...

    Danke schon einmal

    MFG chris :D

  • mmmm ...

    Kann mir keiner Helfen?

    bin jetzt bei der Version...

    Leider bekomme ich so nicht das gewünschte...Ich kann das ganze auch nicht mit php rausfischen weil das nachher 100 -500k Dateien sind... wird zu langsam...
    Es soll mit die ids der Dateien die als objekte.objshort Bestellung enthalten und in der Untertabelle objkeys.okeyno = 0 AND objkeys.okeydata LIKE '%Contelo%' usw...

    Wäre für jede Antwort echt Dankbar.....

    MFG chris :D

  • Hi...

    Ich bin mit Hilfe der Lösung etwas näher gekommen.
    ...

    Zitat

    Von Yaslaw

    Wenn du die 2 Taebllen mit einem JOIN verknüpfst, hast du nachher [Anzahl(objkeys)] Zeilen.
    Darüber kannst du ganz normal den WHERE setzen.
    Anschliessend die Felder von objkeys nicht ausgeben und mit einem DISTINCT (oder GROUP BY) die Doppelten objekte entfernen

    Die Richtung ist schon einmal sehr gut. Nur leider ist das Ergebnis noch nicht ganz richtig.
    Der SQL liefert zwei Ergebnisse...
    objid 8 und 24.
    ID 8 Ist richtig da alle Suchbegriffe aus den objkeys auch zutreffen.
    Bei ID 24 trifft aber nur objkeys.okeyno = 0 AND objkeys.okeydata LIKE '%Contelo%'
    es müssen aber alle zutreffen... verbinde ich jetzt wieder die Abrage mit AND
    habe ich natürlich Null Ergebnisse.... und genau das ist mein Problem...

    Da muss es doch noch eine andere Lösung geben oder?
    Vielen Dank für die Hilfe...

    MFG chris [Blockierte Grafik: http://www.tutorials.de/style/v11/images/smilies/biggrin.png]

  • Eventuell musst du eine doppelte Abfrage machen:
    - Zuerst alle Datensätz wählen bei denen zumindest eine Bedingung zutrifft, gruppieren und dabei die gruppierten Objekte zählen.
    - Wenn mehr als 3 gruppiert wurden, dann wieder selektieren