首页 > 解决方案 > 获得用户喜爱的高效 SQL 查询

问题描述

我有三张桌子

USER
OFFER
USER_FAV_OFFER

User fav offer 包含要加入的用户 id 和 offer id。我可以通过加入获得用户最喜欢的优惠。但我的问题是我需要所有优惠,而这些优惠也检测它是否已被收藏。

我可以进行两个查询并在两个循环之间使用迭代,我可以获得结果,但我认为这不是一种有效的方法。任何好的建议如何用最喜欢的标志获得所有优惠。

编辑:

select * from tbl_offer
left outer join tbl_user_book_marks on tbl_offer.id= tbl_user_book_marks.offer_id

左外连接对我不起作用,它给了我多余的结果。我也无法进行分组,因为我需要此查询中的书签标志。

标签: javapostgresql

解决方案


下面的查询对我有用

select is_bookmarked, tbl_offer.* from tbl_offer
    left outer join tbl_user_book_marks on tbl_offer.id= tbl_user_book_marks.offer_id
    and tbl_user_book_marks.user_info_id = USERID

用户 ID 将从 ui 传递。


推荐阅读