2016-03-24 3 views
0

Beitritt folgendes Schema mit:eindeutige ID aus der Tabelle, während

Table ticket 

- **ticketid** int; 
- **terr** int; 

Table terrlocation 

- **terrid** int; 
- **terr_desc** int; 

So, nachdem Sie die folgende Abfrage ausführen:

SELECT * FROM ticket tck 
LEFT JOIN terrlocation ter on tck.terr = ter.terrid 

Ich hol:

ticketid | terr | terrid | terr_desc 
-------------------------------------- 
01  | 02 | 02  | A  
01  | 02 | 02  | B 
01  | 02 | 02  | C 

Aber mein Aufgabe ist es zu überprüfen, ob es irgendwelche Datensätze in der Lage gibt, die mit dem Ticket verbunden sind, als ich zB bekomme 1 und wenn nicht als 0. Ich kann es durch den Fall erreichen, ABER, atm Ich bekomme 3 Datensätze statt einer.

Es scheint mir, dass ich subquery in LEFT JOIN so etwas wie

SELECT * FROM ticket tck LEFT JOIN ((SELECT DISTINCT FROM terrid) 
terrlocation ter on tck.terr = ter.terrid) 

Aber es funktioniert nicht setzen müssen. Wie kann ich mein Ziel erreichen? M.b. durch CTE ist besser?

+0

Mann ich versuche schwer zu verstehen, was Sie versuchen zu tun ... können Sie nur eher "wollte Ausgabe" wie Sie für Ihre erste Abfrage getan? – Veljko89

Antwort

1

Wenn Sie DISTINCT verwenden, müssen Sie die Spalten angeben, die unterschieden werden müssen! Versuchen Sie das:

+0

Schande über mich, so voller Fehler. Danke für die Hilfe. – Cove