高效的SQl查询获得用户的喜爱

时间:2019-05-13 10:37:51

标签: java postgresql

我有三个桌子

USER
OFFER
USER_FAV_OFFER

用户收藏的报价包含用户ID和要加入的报价ID。 我可以通过加入获得用户最喜欢的优惠。 但是我的问题是我需要所有报价,并且这些报价还检测到它是否已被收藏。

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

编辑:

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

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

1 个答案:

答案 0 :(得分:0)

以下查询对我有用

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传递。