Ich versuche, ein Programm durchzugehen, um zu prüfen, ob Gutscheine innerhalb einer Gutschchtabelle gültig sind.Bedingte innere Verknüpfung basierend auf dem Inhalt der primären Tabelle
Es gibt einige einfache Validierungsaspekte, z. B. ob der Gutschein abgelaufen ist oder nicht, aber auch einige Gutscheine können bedingt sein, wenn ein Kunde bestimmte Produkte nach Marke oder Lieferanten kauft.
Also, ich habe Tabelle von Gutscheinen
id | brand | supplier | value etc
eine Tabelle der Marken
id | name etc
und eine Tabelle mit den Lieferanten
id | name etc
Wenn ein Gutschein zu einer Marke ist nicht spezifisch oder Lieferant, dann ist der Wert in der Gutscheinen Geschichte 0
Ich habe versucht, diese Sql-Abfrage innerhalb der Tabellen, aber ich bekomme keine Ergebnisse, ich nehme an, dies ist, weil der Gutschein-Code (ID) versuche ich zu verwenden ist nicht spezifisch für eine Marke oder einen Anbieter?
SELECT *, brands.name as brandName, suppliers.name as supplierName
FROM `vouchers`
INNER JOIN brands on vouchers.brand = brands.id
INNER JOIN suppliers on vouchers.supplier = suppliers.id
WHERE vouchers.id= '" & voucherCode & "'
Wie würde ich dies schreibe, so dass die in der Tabelle Verbindungs brands
auf dem Wert brand
in der Tabelle abhängig ist vouchers
ist größer als 0 (und dann simiarly für Lieferanten)
ich einen Blick gehabt haben hier und sehen Sie einige andere Fragen gepostet, aber ich fürchte, ich verstehe nicht vollständig die Antworten auf sie in der Lage, sie auf meine Situation zu beziehen.
Benutzung von MySQL-Datenbank, die von der Art und Weise :-)
Warum würden Sie einen bedingten Join durchführen? Verwenden Sie einen 'LEFT JOIN' anstelle von' INNER JOIN'. Wenn Sie Null-Datensätze erhalten, bedeutet dies, dass für einen bestimmten Datensatz keine Ergebnisse gefunden wurden. Dann wenden Sie Logik in Ihrer Anwendung an, wenn nicht null - Marken wurden gefunden, wenn null - keine Marken. Verwenden Sie keine Logik auf der Datenbankebene. –
Als Antwort darauf, einfach weil ich mit Sql Quatsch bin !! –