2017-03-03 4 views
0

Ich habe die folgende Bild-Tabelle in mySQL, die mir gegeben wurde, um zu korrigieren, wo alle Bilder im Zusammenhang mit einer Reihe von Produkten gespeichert sind. Diese Bilder wurden (die meisten von ihnen) oder werden in der Größe geändert, so dass adaptive Bilder am Frontend einer App verwendet werden können. Wenn jedoch das Front-End die API aufruft und die angeforderten Produktobjekte überprüft, scheinen einige "Haupt" -Bilder keine "Alternativen" (Größe/Kinder) zu haben. Jetzt weiß ich nicht, wie die API diese Bilder speichert, wenn sie durch den Resizer laufen. Ich wurde gerade gebeten, die Tabelle zu überprüfen, um sicherzustellen, dass alle Bilder alternative Größen haben, und so weit wie möglich zu versuchen, um zu sehen, was falsch ist. Dazu habe ich versucht, eine Abfrage für die Bildtabelle auszuführen, um alle übergeordneten Bilder zu erhalten, die keine "Kinder" haben.MYSQL - Eltern Bilder ohne Größe Kinder

Eine Beispieltabelle ist wie folgt, wobei der Schlüssel parent_id ein Fremdschlüssel ist, der auf den Schlüssel id des Hauptbilds verweist. Diese Einschränkung wurde auf den Tisch, wo **** ist Istwerten für die Frage in der Hand zu ersetzen:

CONSTRAINT `****` FOREIGN KEY (`parent_id`) REFERENCES `image` (`id`) 

Probentabelle:

+----+-------+-------------+--------------+--------------+ 
| id | width | path  | publicId | parent_id | 
+----+-------+-------------+--------------+--------------+ 
| 1 | 300 | somewhere |  12  |  NULL  | 
+----+-------+-------------+--------------+--------------+ 
| 2 | 400 | somewhere2 |  34  |  1  | 
+----+-------+-------------+--------------+--------------+ 
| 3 | 500 | somewhere3 |  56  |  1  | 
+----+-------+-------------+--------------+--------------+ 
| 4 | 200 | somewhere4 |  78  |  NULL  | 
+----+-------+-------------+--------------+--------------+ 
| 5 | 200 | somewhere5 |  90  |  NULL  | 
+----+-------+-------------+--------------+--------------+ 

Um alle Bilder, die die Eltern zu erhalten, ohne Kinder habe ich die folgende Abfrage:

SELECT publicId, version, mimeType FROM image i WHERE parent_id IS NULL AND NOT EXISTS (SELECT id FROM image r WHERE r.parent_id = i.id) 

gibt es eine Möglichkeit kann ich überprüfen, dass dies in der Tat angesichts der richtigen Anzahl von un-Größe verändert Mutter Bilder Zurückkehren, dass es insgesamt sind von 125397 Zeilen in der Tabelle?

+0

Führen Sie positive und negative Tests der zurückgegebenen Daten durch, um die Abfrage zu vereinfachen. Die Abfrage scheint jedoch richtig zu sein. – Shadow

+0

Ok. Vielen Dank. Kannst du das als Antwort hinzufügen, damit ich es als korrekt akzeptieren kann? – hyprstack

Antwort

1

Führen Sie positive und negative Tests der zurückgegebenen Daten durch, um die Abfrage zu trösten.

Positive Tests bestätigen, dass die von Ihrer Abfrage zurückgegebenen Ergebnisse Ihren Geschäftsanforderungen entsprechen. Negative Tests bestätigen, dass Datensätze, die von Ihrer Abfrage ausgeschlossen wurden, gemäß Ihren Geschäftsanforderungen ausgeschlossen werden sollten.

Die Abfrage scheint jedoch die richtige zu sein.

Verwandte Themen