Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full outer join via left + right + union #34

Open
mosbth opened this issue Mar 25, 2021 · 0 comments
Open

Full outer join via left + right + union #34

mosbth opened this issue Mar 25, 2021 · 0 comments

Comments

@mosbth
Copy link
Member

mosbth commented Mar 25, 2021

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant