Ik probeer een update statement te draaien. Er zijn nu drie tabellen. Een tabel met gebruikers (person), een tabel met vestigingen (mDepartment) en een tabel die aangeeft bij welke vestigingen een gebruiker hoort (mPerson2department). In de laatste tabel zitten twee velden, eentje die linkt naar het gebruikersid en eentje die linkt naar het vestigingsid. Dit vind ik een inefficiënte en onoverzichtelijke manier van werken. Daarom wil ik deze tabel elimineren.
Hierbij ga ik werken met bitwise operators. Ik heb een veld 'department' aan de person-tabel toegevoegd. Elke bit in dat veld staat voor een koppeling met een vestiging. De rechter bit is bijvoorbeeld vestiging met id 1. Dit werkt uitstekend.
Nu moet ik echter nog wel de gegevens uit de mPerson2department tabel overzetten naar het nieuwe veld. Ik probeer dat met de volgende query
Dit geeft mij echter een
Weet iemand hoe ik dit kan oplossen?
Hierbij ga ik werken met bitwise operators. Ik heb een veld 'department' aan de person-tabel toegevoegd. Elke bit in dat veld staat voor een koppeling met een vestiging. De rechter bit is bijvoorbeeld vestiging met id 1. Dit werkt uitstekend.
Nu moet ik echter nog wel de gegevens uit de mPerson2department tabel overzetten naar het nieuwe veld. Ik probeer dat met de volgende query
SQL:
1
2
3
4
5
6
7
| UPDATE person, mPerson2department SET person.department = BIT_OR(POW(2, mPerson2department.fk_did - 1)) WHERE person.pid = mPerson2department.fk_pid; |
Dit geeft mij echter een
fout. Ik heb al gegoogled en het gebruik van GROUP BY geprobeerd, maar zonder resultaat.ERROR 1111 (HY000): Invalid use of group function
Weet iemand hoe ik dit kan oplossen?
Ik ontken het bestaan van IE.