Hirdetés

Új hozzászólás Aktív témák

  • Apollo17hu
    őstag

    sziasztok

    kettő táblát szeretnék összefésülni. nagyon kezdő vagyok sql szinten, de rá vagyok kényszerítve, ezért ki kell találnom mi a gond. van két tábla:

    januar:
    id gyümi hely
    1 alma kamra
    1 alma kamra
    2 dinnye padlas
    3 körte pince

    februar
    id gyümi hely
    1 alma pince
    2 dinnye padlas
    3 körte kamra

    annyit szeretnék, hogy a kettőt táblát az id oszlop mentén szépen egymás mellé rendezze.

    ezzel a megoldással sikerült is:

    select *
    from januar, februar
    where januar.id=februar.id

    viszont csak fél siker, mert ezt kaptam:

    1 alma kamra 1 alma pince
    1 alma kamra 1 alma pince
    2 dinnye padlas 2 dinnye padlas
    3 körte pince 3 körte kamra

    nekem viszont az alábbi forma kellene, mert a fenti becsapós. olyan, mint február is kettő almám lenne.

    1 alma kamra 1 alma pince
    1 alma kamra null null null
    2 dinnye padlas 2 dinnye padlas
    3 körte pince 3 körte kamra

    ezt elvileg a left join tudja, de valamiért ugyan azt kapom, mint az első eredmény. ezzel próbáltam:

    select *
    from januar left join februar
    on januar.id = februar.id

    a fenti példa gyermeteg nagyon, sorry : ))

    Miért akarod összefésülni?
    Azért nem tudod megcsinálni, mert januárban két teljesen azonos rekordod van (1, alma, kamra), tehát nincs egyedi kulcs hozzájuk. Neked kellene valamilyen szempont (mező) alapján megmondani, hogy a két rekord közül melyikhez kösse hozzá februárt, de nincs ilyen mező.

    Úgy nem jó, hogy UNION ALL-ozod a két táblát, és kiegészíted a létrejött táblát egy hónap oszloppal?

    SELECT 'január' AS hónap, id, gyümi, hely
    FROM január

    UNION ALL

    SELECT 'február' AS hónap, id, gyümi, hely
    FROM február

    (Ékezeteket természtesen nem kellene, de talán érthető, hogy gondoltam.)

    szerk.: Amúgy biztosan jó a januári táblád, hogy duplikálva van egy rekord?

Új hozzászólás Aktív témák