der-han Geschrieben 3. August 2006 Geschrieben 3. August 2006 Hallo, folgendes Problem: Ich habe 2 Tabellen, mal so grob die Spalten, also die wichtigen die ich jez brauche: tabelle 1: ticketnr, beschreibung, status, objektid, idadminbearbeitung, anfangsdatum tabelle 2: id, typ so ich will jez aus tabelle 1 daten rausholen.. und zwar: 1. in der beschreibung suche ich nach einem schlüsselwort (where beschreibung like '%wort%') 2. das anfangsdatum soll in nem bestimmten zeitraum liegen where anfangsdatum >= datumsanfang and anfangsdatum <= datumsende) das funktioniert bis jetzt wunderbar, jetzt kommt der Teil wo ich nen Join brauche: 3. ich gebe einen typ ein.. die id die in der objektid in tabelle 1 steht kann ich in tabelle 2 wiederfinden in id ich will also nur datensätze aus tabelle 1 dessen objektid in tabelle 2 einen bestimmten typen hat hab bis jez das hier, aber das funzt nich mit dem join, steig da leider noch nicht so durch: "SELECT a.ID, a.TicketNr, a.ObjektID, a.Beschreibung, a.Status, kObjekte.Typ,a.IDAdminBearbeitung FROM dAktion as a, kObjekte" + " WHERE a.Beschreibung LIKE '%" + suchwort + "%' AND a.IsBase = 'J' AND a.Anfang >= " + datumsanfang + " AND a.Anfang <= " + datumsende + " " + "INNER JOIN kObjekte ((ON kObjekte.ID = dAktion.ObjektID) LEFT JOIN kObjekte.Typ = " + typ + ")" Kann mir bitte jemand helfen?
Joe Kinley Geschrieben 3. August 2006 Geschrieben 3. August 2006 "SELECT a.ID, a.TicketNr, a.ObjektID, a.Beschreibung, a.Status, kObjekte.Typ,a.IDAdminBearbeitung FROM dAktion as a, kObjekte" + " WHERE a.Beschreibung LIKE '%" + suchwort + "%' AND a.IsBase = 'J' AND a.Anfang >= " + datumsanfang + " AND a.Anfang <= " + datumsende + " " + "INNER JOIN kObjekte ((ON kObjekte.ID = dAktion.ObjektID) LEFT JOIN kObjekte.Typ = " + typ + ")" Kann mir bitte jemand helfen? Also die Reihenfolge is schonmal falsch SELECT a.ID, a.TicketNr, a.ObjektID, a.Beschreibung, a.Status, b..Typ , a.IDAdminBearbeitung FROM dAktion a INNER JOIN kObjekte b ON b.ID = a.ObjektID WHERE a.Beschreibung LIKE '%<suchwort>%' AND a.IsBase = 'J' AND a.Anfang >= <datumsanfang> AND a.Anfang <= <datumsende> Hab mal deine Quotes rausgenommen... Versuch mal einheitlich die Aliase fuer die Tabellen zu benutzen.. und Joins wirklich nur ueber die IDs zu machen.. den rest kannst du normal per Aliase referenzieren...
der-han Geschrieben 3. August 2006 Autor Geschrieben 3. August 2006 Jo danke, sieht schon mal was logischer aus. Jetzt habe ich aber immer noch keinen Bezug auf den Typen des Objekts Wenn ich nur gucke ob die ObjektID auch in der Tabelle kObjekte steht, bringts ja nichts, die steht auf jeden Fall drin. Das Wichtige ist ja, ob das Objekt auch den bestimmten Typen hat, das bringt mich ja so durcheinander *g* Ohne die Typenauswahl gehts ja auch ohne JOIN Geht das dann mit nem ... INNER JOIN kObjekte b ON b.ID = a.ObjektID AND b.Typ = <typ> ... oder brauch ich da son 2. Join? ... INNER JOIN kObjekte b ON b.ID = a.ObjektID INNER JOIN b ON b.Typ = <typ> ...
Pinhead Geschrieben 3. August 2006 Geschrieben 3. August 2006 Geht das dann mit nem ... INNER JOIN kObjekte b ON b.ID = a.ObjektID AND b.Typ = <typ> ... Müsste so klappen
der-han Geschrieben 3. August 2006 Autor Geschrieben 3. August 2006 anscheinend nicht. er sagt mir "Verknüpfungsausdruck nicht unterstützt"
Pinhead Geschrieben 3. August 2006 Geschrieben 3. August 2006 anscheinend nicht. er sagt mir "Verknüpfungsausdruck nicht unterstützt" Äh sorry die "and" Anweisung gehört natürlich ins WHERE
der-han Geschrieben 3. August 2006 Autor Geschrieben 3. August 2006 Jo, macht auch mehr Sinn *g* Funktioniert. Vielen Dank für die schnelle Hilfe
isardor Geschrieben 3. August 2006 Geschrieben 3. August 2006 Naja, ganz schön viel aufwand, dafür, dass Inner Join eigentlich eine unnötige Verknüpfung ist, weil Inner Join eigentlich nur eine andere Schreibweise für Where ist.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden