sql - 正确合并查询 SQL
问题描述
我有三张桌子USERS
,,,BOOKMARKS_PRODUCTS
。PRODUCTS
我需要从USERS
表中,通过选择用户ID
,在BOOKMARKS_PRODUCTS
表中找到,从PRODUCTS
表中,跨PRODUCTS_ID
字段在BOOKMARKS_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}'
请帮助我正确地做到这一点。
解决方案
您可以在查询中使用 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}'
如需更多参考,请参阅
推荐阅读
- reactjs - 查看页面源不在reactjs中显示内容
- java - 将文本动态附加到 Jackson 中任何对象的所有属性名称
- python - 调用全局变量时未定义变量
- unique-id - 为所有 Pod 全局分配每个 Pod 8 位唯一 ID
- node.js - 为 pdf 文件创建读取流以上传到 s3 存储桶
- spring-boot - 为什么使用 RedisTemplate 在 springboot 中抛出 NoSuchMethodError?
- r - 通过使用 R 选择上一行中的值来填充缺失值
- elasticsearch - Elasticsearch:为什么无法通过“term”查询找到但可以通过“match”查询找到?
- android - 如何将另一个片段添加到 ViewPager2 中?
- swift - Swift:使用 base64 编码的字符串填充错误