mysql - Creating a self-reflexive cross join -
hi i'm looking see if there alternative syntax following self-reflexive cross-join. objective sort of row-filler table - dates should have entries every cdn. using mysql
select d.labeldate, n.cdn, networks.sites ( select distinct labeldate cdn_trend ) d cross join ( select distinct cdn cdn_trend ) n left join cdn_trend networks on networks.labeldate = d.labeldate , networks.cdn = n.cdn order labeldate, cdn i've tried recasting cross-join using simple aliases gives me column errors in join. possible or should consider using views instead?
as cross join should return cartesian product of 2 tables should same selecting both without join. however, following raises "unknown column d.labeldate in on clause" exception
select distinct d.labeldate, n.cdn, networks.sites cdn_trend d, cdn_trend n left join cdn_trend networks on (n.labeldate = networks.labeldate , d.cdn = networks.cdn) order labeldate, cdn error code: 1054. unknown column 'd.cdn' in 'on clause'
because length of dand n relatively small size of query fast enough.
i think close in original intent... every date, want results of every network node status. if list multiple tables in clause without join condition, default create cartesian... that, join detail table...
select d.labeldate, n.cdn, networks.sites ( select d.labeldate, n.cdn ( select distinct labeldate cdn_trend ) d, ( select distinct cdn cdn_trend ) n ) crossresults left join cdn_trend networks on crossresults.labeldate = networks.labeldate , crossresults.cdn = networks.cdn order networks.labeldate, networks.cdn
Comments
Post a Comment