Molempipuolinen liitos

MySQL:ssa

Miten MySQL:ssa tehdään molempipuolinen liitos?

Taulu A (id, arvo)
1 A
2 B
3 C

Taulu B (id, arvo)
2 X
3 Y
4 Z

Lopputulos (id, A, B)
1 A, NULL
2 B, X
3 C,Y
4 NULL, Z

2

717

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ...

      select * from Taulu A full join Taulu B
      using id

      • I.Proqatlis

        Oikea vastaus on, ettei sitä tänä päivänä tehdä mitenkään, siis suoraan. Kiertotie toki on olemassa, ja se on seuraava:

        SELECT a.id, a.arvo, b.arvo
        FROM a_taulu a LEFT JOIN b_taulu b ON a.id = b.id
        UNION
        SELECT b.id, a.arvo, b.arvo
        FROM a_taulu a RIGHT JOIN b_taulu b ON a.id = b.id;

        Ensimmäinen SELECT siis hakee a_taulu:sta kaikki rivit ja yhdistää kunkin rivin mahdolliseen b_taulu:ssa olevaan riviin id:n perusteella.

        Toinen SELECT hakee b_taulu:sta kaikki rivit ja yhdistää kunkin rivin mahdolliseen a_taulu:ssa olevaan riviin.

        Nämä kaksi kyselytulosta yhdistetään UNIONilla ja kaksoiskappaleet poistuvat, koska tässä ei ole määritystä UNION ALL.


        Lisää aiheesta:

        http://dev.mysql.com/doc/refman/5.0/en/join.html

        Tuossa ylläolevassa paikassa kaksi viimeistä viestiä liittyvät aiheeseen.


        Tässä alla taas on juttua, kuinka full join on Oracle-tietokannassa olemassa versiosta 9i alkaen. MySQL:ssä sitä ei ole vielä lainkaan. Mutta tietokannat kehittyvät, ja kiertotie kuitenkin löytyy.

        http://www.oreillynet.com/pub/a/network/2002/04/23/fulljoin.html


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Mistä puhuitte viimeksi kun näitte

      Kerro yksi aiheista
      Ikävä
      80
      5689
    2. Olenko saanut sinut koukkuun?

      Hyvä. Rakastan sua.
      Ikävä
      127
      3943
    3. ROTAT VALTAAVAT ALUEITA

      Asukkaat nyt loukkuja tekemään ja kiireellä, jätehuolto kuntoon, jätteet niille kuuluville paikoille, huomioikaa yrittäj
      Äänekoski
      45
      3850
    4. Se on hyvästi

      Toivottavasti ei tavata.
      Ikävä
      66
      3524
    5. Miten minusta tuntuu että kaikki tietää sun tunteista mua kohtaan

      Paitsi suoraan minä itse, vai mitä hlvettiä täällä tapahtuu ja miksi ihmiset susta kyselee minulta 🤔❤️
      Ikävä
      26
      2908
    6. Alavuden sairaala

      Säästääkö Alavuden sairaala sähkössä. Kävin Sunnuntaina vast. otolla. Odotushuone ja käytävä jolla lääkäri otti vastaan
      Ähtäri
      7
      2447
    7. Sisäsiittosuus

      Tämän kevään ylioppilaista 90% oli sama sukunimi?
      Suomussalmi
      27
      2194
    8. Kerro todelliset motiivit

      kaivattuasi kohtaan?
      Ikävä
      204
      2101
    9. 33
      1949
    10. Reuters: Ukraina on iskenyt Venäjän strategisia pommikoneita vastaan. Jopa 40 konetta vahingoittunut

      Ukrainan turvallisuuspalvelu SBU on iskenyt Venäjän strategisia pommikoneita vastaan, kertoo Reuters. Uutistoimiston läh
      NATO
      432
      1769
    Aihe