Tänkte bara visa hur man kunde lösa sista uppgiften i årets tenta.
Med tanke på hur uppgiften är skriven kan det finnas flera sätt att lösa det men så här gjorde jag.
SELECT * FROM
(
SELECT
CONCAT(m.fornamn, " (", m.alias, ") ", m.efternamn) AS Namn,
m.ort AS Ort,
h.namn AS Hund,
CONCAT(r.namn, " ", IF(r.godkand != "ja", "(X)", "")) AS Ras,
m2h.registrerad AS Registrerad
FROM medlem AS m
LEFT OUTER JOIN medlem2hund as m2h
ON m.id = m2h.medlem_id
LEFT OUTER JOIN hund as h
ON m2h.hund_id = h.id
LEFT OUTER JOIN ras as r
ON r.id = h.ras_id
UNION
SELECT
CONCAT(m.fornamn, " (", m.alias, ") ", m.efternamn) AS Namn,
m.ort AS Ort,
h.namn AS Hund,
CONCAT(r.namn, " ", IF(r.godkand != "ja", "(X)", "")) AS Ras,
m2h.registrerad AS Registrerad
FROM medlem AS m
LEFT OUTER JOIN medlem2hund as m2h
ON m.id = m2h.medlem_id
RIGHT OUTER JOIN hund as h
ON m2h.hund_id = h.id
LEFT OUTER JOIN ras as r
ON r.id = h.ras_id
) AS t
ORDER BY
Ras, Registrerad DESC, Hund
;
Jag såg att någon hade fysiskt uppdaterat tabellen med ett X (ej godkänd ras), men tanken var en if-sats eftersom data om rasens "godkännande" ligger i databasen.
Tänkte bara visa hur man kunde lösa sista uppgiften i årets tenta.
Med tanke på hur uppgiften är skriven kan det finnas flera sätt att lösa det men så här gjorde jag.
Jag såg att någon hade fysiskt uppdaterat tabellen med ett X (ej godkänd ras), men tanken var en if-sats eftersom data om rasens "godkännande" ligger i databasen.