我正在尝试与以下 2 个查询相交,但出现此错误:
ProgrammingError:(ProgrammingError)(1064,“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在 'INTERSECT SELECT user_checkpoint.id AS user_checkpoint_id, user_checkpoint.user_' 行附近使用4" )“SELECT anon_1.user_checkpoint_id AS anon_1_user_checkpoint_id,anon_1.user_checkpoint_user_id AS anon_1_user_checkpoint_user_id,anon_1.user_checkpoint_checkpoint_id AS anon_1_user_checkpoint_checkpoint_id,anon_1.user_checkpoint_date_added AS anon_1_user_checkpoint_date_added \ n从(SELECT user_checkpoint.id AS user_checkpoint_id,user_checkpoint.user_id AS user_checkpoint_user_id,user_checkpoint.checkpoint_id AS user_checkpoint_checkpoint_id,用户检查点。date_added AS user_checkpoint_date_added \nFROM user_checkpoint INNER JOIN checkpoint ON checkpoint.id = user_checkpoint.checkpoint_id INNER JOIN user AS user_1 ON user_checkpoint.user_id = user_1.id INNER JOIN facebook_user AS facebook_user_1 ON facebook_user_1.id = user_1.facebook_user_id INNER JOIN friend_connection ONfriend_connection.fb_user_to = facebook_user_1.id INNER JOIN facebook_user ON facebook_user.id =friend_connection.fb_user_from INNER JOIN user ON user.facebook_user_id = facebook_user.id \nWHERE user.id != %s AND checkpoint.creator = user_1.id AND checkpoint.demo = %s交叉选择 user_checkpoint.id AS user_checkpoint_id, user_checkpoint.user_id AS user_checkpoint_user_id, user_checkpoint.checkpoint_id AS user_checkpoint_checkpoint_id, user_checkpoint。date_added AS user_checkpoint_date_added \nFROM user_checkpoint INNER JOIN checkpoint ON checkpoint.id = user_checkpoint.checkpoint_id \nWHERE checkpoint.creator != %s AND checkpoint.demo = %s) AS anon_1 ORDER BY checkpoint.date_created DESC \n LIMIT %s' (185L , 0, 185L, 0, 1)
#get checkpoints from users with friends
FriendUserCheckpoint, FriendFacebookUser, FriendUser = aliased(UserCheckpoint), aliased(FacebookUser), aliased(User)
q = (db.session.query(UserCheckpoint).
join(Checkpoint, Checkpoint.id == UserCheckpoint.checkpoint_id).
join(FriendUser, FriendUser.id == UserCheckpoint.user_id).
join(FriendFacebookUser, FriendFacebookUser.id == FriendUser.facebook_user_id).
join(FriendConnection, FriendConnection.fb_user_to == FriendFacebookUser.id).
join(FacebookUser, FacebookUser.id == FriendConnection.fb_user_from).
join(User, User.facebook_user_id == FacebookUser.id).
filter(User.id != user_obj.id).
filter(Checkpoint.creator == FriendUser.id).
filter(Checkpoint.demo == False)
)
#get checkpoints from users without friends
p = (db.session.query(UserCheckpoint).
join(Checkpoint, Checkpoint.id == UserCheckpoint.checkpoint_id).
filter(Checkpoint.creator != user_obj.id).
filter(Checkpoint.demo == False)
)
w = q.intersect(p)
return w.order_by(desc(Checkpoint.date_created)).limit(limit).all()
我该如何解决?谢谢!