diff --git a/uffd/migrations/versions/f2eb2c52a61f_add_serviceuser.py b/uffd/migrations/versions/f2eb2c52a61f_add_serviceuser.py
index 2440efa28d126299ff017ac1dcc832c0d71b2020..2ee336c5f4c13a5489c415aeb9e28cc0176df8f2 100644
--- a/uffd/migrations/versions/f2eb2c52a61f_add_serviceuser.py
+++ b/uffd/migrations/versions/f2eb2c52a61f_add_serviceuser.py
@@ -23,7 +23,10 @@ def upgrade():
 	)
 	service = sa.table('service', sa.column('id'))
 	user = sa.table('user', sa.column('id'))
-	op.execute(service_user.insert().from_select(['service_id', 'user_id'], sa.select([service.c.id, user.c.id])))
+	op.execute(service_user.insert().from_select(
+		['service_id', 'user_id'],
+		sa.select([service.c.id, user.c.id]).select_from(sa.join(service, user, sa.true()))
+	))
 
 def downgrade():
 	op.drop_table('service_user')
diff --git a/uffd/models/service.py b/uffd/models/service.py
index 7aa928d429b50ddf4b7facd2c50c9cec8ff8e111..1bed5cfc4aa37a8ab473e739d3a79d68027c4760 100644
--- a/uffd/models/service.py
+++ b/uffd/models/service.py
@@ -178,7 +178,7 @@ def create_service_users(session, flush_context): # pylint: disable=unused-argum
 		return
 	db.session.execute(db.insert(ServiceUser).from_select(
 		['service_id', 'user_id'],
-		db.select([Service.id, User.id]).where(db.or_(
+		db.select([Service.id, User.id]).select_from(db.join(Service, User, db.true())).where(db.or_(
 			Service.id.in_(new_service_ids),
 			User.id.in_(new_user_ids),
 		))
@@ -193,7 +193,7 @@ def create_missing_service_users():
 	# pylint: disable=no-member
 	db.session.execute(db.insert(ServiceUser).from_select(
 		['service_id', 'user_id'],
-		db.select([Service.id, User.id]).where(db.not_(
+		db.select([Service.id, User.id]).select_from(db.join(Service, User, db.true())).where(db.not_(
 			ServiceUser.query.filter(
 				ServiceUser.service_id == Service.id,
 				ServiceUser.user_id == User.id