Zum Inhalt springen

SQL JOIN Abfrage


der-han

Empfohlene Beiträge

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?

Link zu diesem Kommentar
Auf anderen Seiten teilen

"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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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>

...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...