ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
2269
2269
EMPFEHLEN
-
Hallo Leute
Ich versuche eine Abfrage auf 2 Tabellen zumachen.
Ich will 2 unt Werte bekomme - einmal die, die nicht auf die Bed zutreffen und einmal die, die auf die Bed zutreffen.
Glaube das man das mit LEFT JOIN und RIGHT JOIN machen kann...
Hat jemand ein SELECT-Bespiel für mich?
-
Ein Beispiel:
Wenn ich diese Abfrage mache:
SELECT * FROM tabelle1 WHERE datum > '2008-02-01 08:00:00'
->bekomme ich z.B. 13 Einträge.
Diese 13 Einträge unterscheide ich durch einen Vergleich mit einer 2. Tabelle
1.
SELECT * FROM tabelle1
WHERE datum > '2008-02-01 08:00:00' and typ IN
(SELECT typ
FROM tabelle2
WHERE tabelle1.typ like tabelle2.typ
and (wert like 'E' or wert like 'N'))
GROUP BY typ;
-> da bekomme ich 2 Werte raus
nun will ich die restlichen 11 Werte bekommen, wenn ich es negativ setzte geht es nicht, hab es schon ausprobiert
-
Die logische Negierung müsste an folgender Stelle vorgenommen werden.
Ob das inhaltlich so richtig ist, kann ich dir nicht sagen, weil ich von deinen Tabellen nix weiß.
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13
SELECT * FROM tabelle1 WHERE datum > '2008-02-01 08:00:00' AND typ NOT IN (SELECT typ FROM tabelle2 WHERE tabelle1.typ LIKE tabelle2.typ AND (wert LIKE 'E' OR wert LIKE 'N')) GROUP BY typ;
Versuche nie Probleme zu lösen, von deren Existenz du noch gar nichts weißt!
-
HI
Nein so geht es leider nicht, weil der typ ruhig gleich sein kann, sprich in Tabelle2 seien kann oder nicht. nur wenn er gleich ist darf der wert nicht e oder n sein. Aber es gibt ja auch noch die möglichkeit, dass der typ aus tabelle1 nicht in tabelle2 ist... versteht du wie ich das mein
-
1. Nein, ich verstehe nicht genau was du meinst - gib halt mal Beispiele was in den Tabellen steht.
2. Soweit ich dich verstehe, macht dann deine Abfrage überhaupt keinen Sinn.Versuche nie Probleme zu lösen, von deren Existenz du noch gar nichts weißt!
-
in der Tabelle1 stehen verweise auf Dateien, die lokal in einer Ordnerstruktur liegen.
Es gibt 2 Arten von Ordnern in denen die Dateien liegen.
1. Art ist, wenn der typ aus tabelle1 und tabelle2 übereinstimmen und der wert in Tabelle2 e oder n ist.
2. Art, wenn der typ aus Tabelle1 nicht in Tabelle2 steht oder, wenn der Typ aus Tabelle1 in Tabelle2 steht, der wert aber nicht e oder n ist.
Ich hoffe jetzt ist es ein bisschen verständlicher
-
Nein ist es nicht wirklich.
Was gibt es in Tabelle 1 für Spalten und wie sind diese belegt? (2 Beispiele reichen)
Was gibt es in Tabelle 2 für Spalten und wie sind diese belegt? (2 Beispiele reichen)
Ansonsten versuche ich jetzt mal deine verwirrende Beschreibung zu deuten - vielleicht funktionierts ja:
Code sql:1 2 3 4 5 6 7
SELECT * FROM tabelle1 WHERE datum > '2008-02-01 08:00:00' AND (typ NOT IN( SELECT typ FROM tabelle2 ) OR (wert LIKE 'E' OR wert LIKE 'N') )
Aber das ist geraten, da ich ja noch nicht mal weiß, aus welcher Tabelle denn überhaupt der Wert stammt! ! !Versuche nie Probleme zu lösen, von deren Existenz du noch gar nichts weißt!
-
Also:
Tabelle1--------------------Tabelle2
Spalte typ:------------ Spalte typ ----------- Spalte wert
A ---------------------- A------------------------ e
B ---------------------- F------------------------ n
C ---------------------- B ----------------------- e
D ---------------------- D ----------------------- x
(Striche sind nur Platzhalten)
Ablauf
Prüfung 1: Ist A von Tabelle1 in Tabelle2 ->ja
Hat das A in Tabelle2 den wert e oder n-> ja
(Ordnertyp 2)
Prüfung 2: Ist B von Tabelle1 in Tabelle2 ->ja
Hat B in Tabelle2 den wert e oder n -> ja
(Ordnertyp 2)
Prüfung 3: Ist C von Tabelle1 in Tabelle2 ->nein
(Ordnertyp 1)
Prüfung 4: Ist D von Tabelle1 in Tabelle2 -> ja
Hat D von Tabelle2 den wert e oder n -> nein
(Ordertyp 1)
Vllt ist es ja jetzt verständlich.Geändert von Saskia21 (14.03.08 um 14:27 Uhr)
-
Weiß zwar nicht, welchen Sinn diese Variante haben soll, aber:
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
SELECT * FROM tabelle1 WHERE datum > '2008-02-01 08:00:00' AND ( typ NOT IN ( SELECT typ FROM tabelle2 ) OR typ NOT IN ( SELECT typ FROM tabelle2 WHERE wert IN ('E', 'N') ) )
Versuche nie Probleme zu lösen, von deren Existenz du noch gar nichts weißt!
Ähnliche Themen
-
MySQL Join von 2 oder mehreren Tabellen
Von Joe im Forum PHPAntworten: 4Letzter Beitrag: 11.10.10, 15:19 -
MySQL: Join von 3 Tabellen
Von DeMoehn_sm im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 17.03.09, 07:08 -
Abfrage über 2 Tabellen mit Join der Daten
Von matzseesi im Forum Relationale DatenbanksystemeAntworten: 10Letzter Beitrag: 24.04.08, 09:27 -
MySQL - Join mit 2 Tabellen
Von LosLegator im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 11.08.07, 19:49 -
[mySQL] JOIN über drei Tabellen
Von nahkampfschaf im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 12.05.04, 12:59





Zitieren
Login





