2016-12-28 3 views
0

Ich habe ein Problem mit dieser Abfrage in MARIADB Sprache. Diese Abfrage gibt nichts zurück, aber diese Abfrage sollte eine Zeile zurückgeben. Was kann ich tun, damit es funktioniert? Fehler in der Intersect-Abfrage in MariaDB ohne Intersect

`SELECT c.Raza, c.Nombre 
FROM caballos c JOIN caballodisciplina d 
ON c.Cod = d.Caballo 
WHERE d.Disciplina IN ('Salto fondo','Salto vertical') 
GROUP BY c.Raza, c.Nombre 
HAVING COUNT(DISTINCT c.Cod)=2` 

den Tabellen sind wie folgt: enter image description here

enter image description here

und die Abfrage sollte Nombre zurück: Starlaight Raza: Andaluz

Dank!

+0

Da das Problem nicht mit der Syntax die Abfrage, aber mit den Daten, die sie zurückgibt, müssen Sie uns Beispieldaten, erwartete Ergebnisse basierend auf den Beispieldaten und die tatsächlichen Ergebnisse, die Sie erhalten, bereitstellen. Ohne diese können wir nur raten, was vielleicht falsch gelaufen ist. – Shadow

+0

Ich habe die Frage bereits bearbeitet und Sie können die Tabellen und das Ergebnis sehen, das die Abfrage zurückgeben sollte. –

Antwort

0

Ihre Abfrage gibt, was soll es (kein Ergebnis), weil Sie auf das caballos.Cod Feld verbinden, und Sie auf der unterschiedlichen Anzahl von Cod Feldern filtern 2. Da das Feld sems Cod sind für caballos Tabelle eine eindeutige Kennung zu sein, und es Wird in der Join-Bedingung verwendet, kann es nicht mehr als 1 verschiedene Werte pro Gruppe haben.

könnten Sie verwenden das Disciplina Feld in den Filterkriterien statt, weil es nur das Disciplina Feld ist, die unterschiedlichen Werte in zwei separaten Datensätze in der Ergebnismenge haben könnte:

HAVING COUNT(DISTINCT d.Disciplina)=2 
+0

vielen Dank –