首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(MYSQL) select查询--也许是外部连接?

问(MYSQL) select查询--也许是外部连接?
EN

Stack Overflow用户
提问于 2012-04-20 03:09:07
回答 3查看 114关注 0票数 0

我正在为一些sql而挣扎,可能需要一些帮助。我相信这对很多人来说都是很新鲜的东西。

这里有一个例子:当提供白蛋白时,我正在尝试选择不在相册中的所有图片。

表

图片表

代码语言:javascript
复制
    pictureid
    picturename

Album_Picture关联表

代码语言:javascript
复制
    albumpictureid
    albumid
    pictureid

相册表-我不认为这个表需要在SQL中引用。

代码语言:javascript
复制
    albumid
    albumname

我将图片分配到一个相册,并希望只显示尚未分配的图片。

额外学分:如果我能够选择表中的所有图片,并且能够知道相册中已经有哪些图片,而不是从返回的数据中忽略它们,那就更好了。然后,我仍然可以显示图像,只是不允许它被分配。

希望这一切都有意义。谢谢你的帮助。

使用MYSQL 5

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-20 03:12:17

对于第一个问题,这个查询将返回在album_picture关联表中没有关联的图片。

代码语言:javascript
复制
  SELECT 
    * 
  FROM 
    pictures 
  WHERE 
    pictureid NOT IN (SELECT pictureid FROM album_picture)

返回两者的一种简单方法是添加另一列,执行两个查询(一个给出分配的图片,另一个给出未分配的图片),并得到两者的联合。

代码语言:javascript
复制
  (SELECT pictures.*, 'n' AS `assigned` .... ) UNION (SELECT pictures.*, 'y' AS `assigned` ...)
票数 1
EN

Stack Overflow用户

发布于 2012-04-20 03:13:07

您可以找到不在相册中的图片:

代码语言:javascript
复制
select pictureid from Album_Picture where albumid != :albumid

您可以将相册中的内容标记为:

代码语言:javascript
复制
select pictureid, albumid=:albumid as in_album from Album_Picture 
票数 1
EN

Stack Overflow用户

发布于 2012-04-20 03:15:10

让我们尝试创建一个结果表来显示每一张图片及其相关联的相册。由于左边的外接,没有相册的图片将对相册信息有一个空值。通过陈述的命令将所有的无效组合在一起。

代码语言:javascript
复制
select p.pictureid, p.picturename, a.albumid, a.albumname
from picture p
    left outer join album_picture ap
    on p.pictureid = ap.pictureid
        left outer join album a
        on ap.albumid = a.albumid
order by a.albumid
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10239721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档