2 Werte aus einer gleichen Tabelle vergleichen
Koni
- mysql
- php
0 Rolf B
Hallo in die Werte Runde!
Ich habe in einer Tabelle mehrere Werte und jetzt möchte ich zwei davon vergleichen.
Id ! inhalt ! var
Die zwei Werte frage ich über eine SELECT und LEFT JOIN ab
SELECT
a.inhalt AS euro1, b.inhalt AS euro2
FROM money a
LEFT JOIN money b ON b.var=125
WHERE a.var=109
Anschließend würde ich mittels PHP die beiden Werte vergleichen. Aber vielleicht könnte man auch diesen Vergleich gleich in der Datenbankabfrage erledigen?
Koni
Hallo Koni,
das SQL ist merkwürdig. Hast Du es falsch übertragen?
Ein a LEFT JOIN b mit einer ON-Bedingung, wo ein Feld aus b mit einer Konstanten verglichen wird, ordnet allen Sätzen aus a, wo a.var=109 ist, diejenigen Sätze aus b zu, wo b.var den Wert 125 hat. Das sieht mir sehr fragwürdig aus - was willst Du da genau selektieren? Bis Du das beantwortet hast, lasse ich das aber erstmal so stehen.
Einen Vergleich von a.inhalt und b.inhalt kannst Du im SQL natürlich machen.
SELECT a.inhalt as euro1, b.inhalt as euro2
FROM money a LEFT JOIN money b ON b.var=125
WHERE a.var=109
AND a.inhalt = b.inhalt
würde nur die Sätze liefern, für die a.inhalt und b.inhalt den gleichen Wert haben.
Ob eine Abfrage im SQL sinnvoll ist, hängt aber auch von den Rahmenbedingungen ab. Was genau soll verglichen werden, was willst Du damit im PHP anfangen? Du kannst auch so abfragen:
SELECT a.inhalt = b.inhalt as istGleich
FROM money a LEFT JOIN money b ON b.var=125
WHERE a.var=109
und bekommst dann den Wert 1 oder 0, je nach dem, ob die Inhalte gleich sind.
Rolf