Hallo,
heute habe ich scheinbar meinen SQL-Dumm-Fragen-Tag
Folgende Abfrage:
SELECT Top 10 Materialgruppen.WieOftVerwendet, Material.Name, Material.Beschreibung
FROM Materialgruppen, Material
WHERE ((Materialgruppen.FK_Materialart = Materialgruppen.PK_Materialart) and (Materialgruppen.ZeigeInMaterial = true ))
ORDER BY Materialgruppen.WieOftVerwendet DESC
Mit dieser Formulierung werden aktuell 407 Datensätze angezeigt: Also alle auf die das zutrifft. Lasse ich jetzt den "and"-Zweig beim "WHERE" weg:
SELECT Top 10 Materialgruppen.WieOftVerwendet, Material.Name, Material.Beschreibung
FROM Materialgruppen, Material
WHERE ((Materialgruppen.FK_Materialart = Materialgruppen.PK_Materialart))
ORDER BY Materialgruppen.WieOftVerwendet DESC
Dann erhalte ich nur die TOP 10. Allerdings halt die falsche, weil ja das zweite Kriterium fehlt. Warum liefert die erste Abfrage alle Datensätze?
Ciao
CodeGier
heute habe ich scheinbar meinen SQL-Dumm-Fragen-Tag
Folgende Abfrage:
SELECT Top 10 Materialgruppen.WieOftVerwendet, Material.Name, Material.Beschreibung
FROM Materialgruppen, Material
WHERE ((Materialgruppen.FK_Materialart = Materialgruppen.PK_Materialart) and (Materialgruppen.ZeigeInMaterial = true ))
ORDER BY Materialgruppen.WieOftVerwendet DESC
Mit dieser Formulierung werden aktuell 407 Datensätze angezeigt: Also alle auf die das zutrifft. Lasse ich jetzt den "and"-Zweig beim "WHERE" weg:
SELECT Top 10 Materialgruppen.WieOftVerwendet, Material.Name, Material.Beschreibung
FROM Materialgruppen, Material
WHERE ((Materialgruppen.FK_Materialart = Materialgruppen.PK_Materialart))
ORDER BY Materialgruppen.WieOftVerwendet DESC
Dann erhalte ich nur die TOP 10. Allerdings halt die falsche, weil ja das zweite Kriterium fehlt. Warum liefert die erste Abfrage alle Datensätze?
Ciao
CodeGier
Comment