Ich habe zwei Tabellen.
Arbeit:
MySQL - Wie kommt dieses Ergebnis?
+----+----------+
| id | position |
+----+----------+
| 1 | 1 |
| 2 | 2 |
+----+----------+
Inhalt:
+----+---------+------+-------------+
| id | work_id | name | translation |
+----+---------+------+-------------+
| 1 | 1 | Kot | 1 |
| 2 | 1 | Cat | 2 |
| 3 | 2 | Ptak | 1 |
| 4 | 2 | Bird | 2 |
| 5 | 2 | Ssss | 3 |
+----+---------+------+-------------+
Ich möchte wie diese Ergebnisse erhalten:
+----+------+----------+
| id | name | sortName |
+----+------+----------+
| 1 | Kot | NULL |
| 1 | Cat | NULL |
| 2 | Ptak | Ssss |
| 2 | Bird | Ssss |
+----+------+----------+
Meine nicht funktioniert Abfrage ist hier:
select
w.id,
c.name,
cSort.name as sortName
from
work w
LEFT JOIN
content c
ON
(w.id=c.work_id)
LEFT JOIN
content cSort
ON
(w.id=cSort.work_id)
WHERE
c.translation IN(1,2) AND
cSort.translation=3
ORDER BY
sortName
Ich möchte für jede Arbeit mindestens eine Übersetzung bekommen und seco wenn vorhanden (Übersetzung = 1 gibt es immer). Und für jede Zeile möchte ich eine spezielle Spalte mit Übersetzung zum Sortieren verwenden. Aber diese Übersetzung ist für work.id nicht immer vorhanden. In diesem Beispiel möchte ich die Arbeit nach Übersetzung = 3 sortieren.
Sorry für meine nicht fließend Englisch. Irgendwelche Ideen?
Mit freundlichen Grüßen
Wie in „nicht funktioniert Abfrage“: Sie sollten uns immer sagen, * was * nicht funktioniert. Beispiel: "Die Abfrage zeigt andere Sortiernamen als erwartet an und sortiert die Ergebnisse nicht nach work.position". (Erklären hilft Ihnen auch, die Probleme selbst wieder zu betrachten und Sie hätten wahrscheinlich einen Punkt, warum die Ergebnisse nicht von work.position geordnet sind.) –
das ist ein absurdes Datenmodell –