[MySQL] Wert aus Tabelle, nach Bedingung aus Wert einer anderen Tabelle, ersetzen

technobox

Grünschnabel
Hallo zusammen,

ich möchte eine Abfrage in MySQL über 2 Tabellen erstellen und ich komme im Moment einfach nicht weiter. Ich würde mich super über ein paar Tipps von Euch freuen.

Folgende Situation:

tab1:
id_tab1, name, preis, status_tab1

tab2:
id_tab2, sonderpreis, status_tab2

Die Gemeinsamen der Tabellen sind "id".

Angestrebtes Ergebnis:
GEBEAUS id_tab1, name, preis WENN status_tab1 = 1 UND ERSETZE DABEI preis DURCH sonderpreis WENN id_tab1 = id_tab2 UND status_tab2 = 1

Irgendwie verzwirbelt mein Hirn dabei :)
 
Etwa so (Achtung ungetestet!)
SQL:
SELECT
	t1.id_tab1,
	t1.name,
	IFNULL(t2.sonderpreis, t1.preis) AS preis
FROM
	tab1 AS t1
	LEFT JOIN tab2 AS t2
		ON t1.id_tab1 = t2.id_tab2
		AND t1.status_tab1 = t2.status_tab2
WHERE
	t1.status_tab1 = 1
 
Zuletzt bearbeitet von einem Moderator:
Der Hammer! Funktioniert! Habe ganz herzlichen Dank! Kann man genau so verwenden. Einzig die Variablen bei AND habe ich noch dem gewollten Ergebnis angepasst.

Wäre ich nie drauf gekommen. Die Lösung, die mir gefehlt hat, ist das IFNULL ... AS. Das war die Verzwirbelung die ich nicht realisiert bekommen habe.

Nochmals DANKE! :)
Und die beiden Knöpfe "Danke" und "Erledigt" betätige ich sogleich.
 

Neue Beiträge

Zurück