sql >> Database >  >> RDS >> Mysql

MySQL ERROR 1046 (3D000):Geen database geselecteerd bij updatequery

Je hebt velden met een verkeerde naam, maar zelfs als je ze corrigeert, is dit een bug in MySQL daarmee kun je het niet doen als je geen standaarddatabase hebt.

update  test.object1 p
join    (
        select  ur.id_object1, sum(ur.score * ur.weight) as total, count(*) as weight
        from    (
                select  lur.*
                from    (
                        select s.id_object1, s.id_object2, s.dt, s.score, 1 as weight
                        from   test.score as s
                        join   test.object1 as o1
                        using  (id_object1)
                        where  s.dt > o1.dt
                        order by
                               s.id_object1, s.id_object2, s.dt desc
                        ) as lur
                group by
                        lur.id_object1, lur.id_object1, date(lur.dt)
                order by
                        lur.id_object1, lur.id_object1
                ) as ur
        group by ur.id_object1
        ) as r
USING   (id_object1)
SET     p.total = p.total + r.total,
        p.weight = p.weight + r.weight,
        p.dt = now();

Het probleem is specifiek voor UPDATE met dubbel geneste zoekopdrachten en geen standaarddatabase (SELECT of single-nested queries of standaard database werken prima)



  1. Back-up/herstel van een gedockte PostgreSQL-database

  2. group_concat resultaat werkt niet in IN voorwaarde

  3. Java, hoe verander ik de huidige database in een andere?

  4. ScaleGrid DBaaS breidt MySQL-hostingservices uit via AWS Cloud