SQL查询的正确合并
我有三个表SQL查询的正确合并,sql,postgresql,Sql,Postgresql,我有三个表USERS,BOOKMARKS\u PRODUCTS,PRODUCTS SELECT U.USER_NAME, U.USER_EMAIL, U.USER_PHONE, U.USER_AVATAR, U.ABOUT FROM USERS AS U WHERE U.USER_ID = '${user_id}' SELECT B.PRODUCT_ID FROM BOOKMARKS_PRODUCTS AS B WHERE B.USER_ID = '${user_id}' SELECT P.*
USERS
,BOOKMARKS\u PRODUCTS
,PRODUCTS
SELECT U.USER_NAME, U.USER_EMAIL, U.USER_PHONE, U.USER_AVATAR, U.ABOUT
FROM USERS AS U
WHERE U.USER_ID = '${user_id}'
SELECT B.PRODUCT_ID
FROM BOOKMARKS_PRODUCTS AS B
WHERE B.USER_ID = '${user_id}'
SELECT P.*
FROM PRODUCTS AS P
WHERE P.PRODUCT_ID = '${product_id}'
我需要从USERS
表中,通过ID
选择一个用户,在BOOKMARKS\u PRODUCTS
表中找到它,从PRODUCTS
表中,在BOOKMARKS\u PRODUCTS
表中找到PRODUCTS\u ID
字段中找到表中的所有产品
SELECT U.USER_NAME, U.USER_EMAIL, U.USER_PHONE, U.USER_AVATAR, U.ABOUT
FROM USERS AS U
WHERE U.USER_ID = '${user_id}'
SELECT B.PRODUCT_ID
FROM BOOKMARKS_PRODUCTS AS B
WHERE B.USER_ID = '${user_id}'
SELECT P.*
FROM PRODUCTS AS P
WHERE P.PRODUCT_ID = '${product_id}'
请帮助我正确地执行此操作。您是否发现just join
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
您可以在查询中使用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}'
更多参考