Ich habe Tabellen mit einer zu vielen Beziehung.MySQL JOIN Abfrage mit nur einem von mehreren spezifischen Werten
rental
------
id
book_date
prices
------
rental_id
type_id
value
Eine normale JOIN Abfrage würde Ergebnisse
select * from rental a join prices b on a.id = b.rental_id;
id book_date rental_id type_id value
1, 2016-10-04, 1, 8, 200
1, 2016-10-04, 1, 10, 300
2, 2016-10-04, 2, 8, 250
3, 2016-10-04, 3, 8, 200
3, 2016-10-04, 3, 10, 300
, was ich will, ist, wenn Preisrekordler = 10 type_id hat, dann diese Zeile nehmen; Wenn dies nicht der Fall ist, wird die Zeile mit type_id = 8 verwendet. Das Ergebnis Ich möchte:
1 2016-10-04 1 10 300
2 2016-10-04 2 8 250
3 2016-10-04 3 10 300
ich diese Frage haben, aber es scheint nicht auf meinem Fall zu arbeiten:
select * from rental a
join prices b
on a.id = b.rental_id and
(if(b.type_id = 10, b.type_id = 10, b.type_id = 8))
ORDER BY a.id DESC LIMIT 20
danke, es funktioniert auf meinem Fall. –