gpt4 book ai didi

mysql - 当列不为空时,使用 SQL 从图库表中选择图像

转载 作者:行者123 更新时间:2023-11-29 11:03:47 24 4
gpt4 key购买 nike

我有两个表,一个用于存储用户,另一个用于存储图像。用户有 2 张不同的照片,一张用于个人资料,另一张用于背景显示。图库表用于存储任何照片,无论是来自用户、新闻、帖子、产品等...

所以我需要做的是在用户表中定义时从图库表中选择个人资料和背景照片。这就是表格的样子

user
id | first_name | last_name | id_gallery_profile | id_gallery_background | ...

gallery
id | image | src

我正在尝试做的左连接,但没有成功:

SELECT a.id, a.first_name, a.last_name
FROM user a
LEFT JOIN gallery.src AS 'profile_image' ON a.id_gallery_profile = gallery.id
LEFT JOIN gallery.src AS 'background_image' ON a.id_gallery_background = gallery.id
WHERE a.id = :userId

我在这里做错了什么?因为 SQl 返回 0。此外,当字段 id_gallery_profileid_gallery_background 为空时,此查询需要工作,因为它可能是还没有任何图像的新用户,或者用户只想让这些字段没有图像。

最佳答案

我想这就是你想要的:

SELECT u.id, u.first_name, u.last_name,
gp.src as profile_image, gb.src as background_image
FROM user u LEFT JOIN
gallery gp
ON u.id_gallery_profile = gp.id LEFT JOIN
gallery gb
ON u.id_gallery_background = gb.id
WHERE u.id = :userId;

注释:

  • 返回的列将转至 SELECT
  • 当您两次加入同一个表时,请使用表别名。
  • 最好的表别名是表名称的缩写。
  • 仅对字符串和日期常量使用单引号。不要将它们用作列名称。

关于mysql - 当列不为空时,使用 SQL 从图库表中选择图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41763469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com