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

  • bambano

    titán

    LOGOUT blog

    válasz Taci #5101 üzenetére

    további problémának látom a felesleges joinokat.
    mivel az items_categories táblában a category_id egyenlő a categories táblában a category_id-vel, ezért csak abból a célból, hogy szűrni lehessen rá, tök felesleges összejoinolni a kettőt. az items_categories táblában pont ugyanúgy lehet szűrni a category_id-re, mint a categories táblában.

    pontosan ugyanez igaz az item_id-re.

    tehát azt kellene csinálni, hogy az items_categories táblából leválogatod azt, ami kell, berakod egy subselectbe (ha a mysql vagymi tud olyat, nem ismerem), és utána ahhoz joinolod hozzá a végén a két plusz táblát.
    ekkor a két plusz tábla joinját már csak a leszűrt termékekre csinálja meg, és sokkal gyorsabb lesz.

    valami ilyesmi postgresben az elmélet:
    with tetelek as (
       select * from items_categories where
           category_id not in  (1,3,13,7,20) and
           item_id not in (117,132,145,209,211)
    ) select * from items,tetelek,categories where
    tetelek.item_id = items.item_id and
    tetelek.category_id = categories.category_id;

    a lényeg, hogy a valódi szűrést a tetelek selectjében érdemes megcsinálni.

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