Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询的正确合并_Sql_Postgresql - Fatal编程技术网

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}'
更多参考