正确合并查询SQL

时间:2019-02-21 06:10:37

标签: sql postgresql

我有三个表USERSBOOKMARKS_PRODUCTSPRODUCTS

我需要从USERS表中,通过ID选择一个用户,然后从BOOKMARKS_PRODUCTS表中的{{1} PRODUCTS表中的}字段中,找到表PRODUCTS_ID中的所有产品。

BOOKMARKS_PRODUCTS

请帮助我正确执行此操作。

2 个答案:

答案 0 :(得分:2)

您可以在查询中使用JOIN从不同的表中获取数据。

SELECT U.USER_NAME, U.USER_EMAIL, U.USER_PHONE, U.USER_AVATAR, U.ABOUT, B.PRODUCT_ID, P.* 
FROM USERS AS  U 
INNER JOIN BOOKMARKS_PRODUCTS AS B ON B.USER_ID = U.USER_ID -- OR '${user_id}'
INNER JOIN PRODUCTS AS P ON P.PRODUCT_ID = B.PRODUCT_ID -- OR '${product_id}'
WHERE U.USER_ID = '${user_id}'

要获得更多的尊重,SEE

答案 1 :(得分:1)

您发现只是加入

select u.*,p.*,bp.* from  users u left join 
BOOKMARKS_PRODUCTS bp on u.USER_ID =bp.USER_ID 
left join PRODUCTS p on bp.PRODUCT_ID =p.PRODUCT_ID