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

  • 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