CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  MySQL/Postgresql

这段查询怎么写?

楼主yyytoyyy(小海)2003-12-01 00:08:10 在 其他数据库开发 / MySQL/Postgresql 提问

我要做一个多用户相册,有三个表,如下:  
  users  
  =======  
  username  
  user_id  
  user_city  
   
   
  album  
  ========  
  album_id  
  user_id  
  album_title  
   
   
  photo  
  ========  
  photo_id  
  album_id  
  photo_url  
   
  三者关系:users是用户信息,每个用户可以有多个相册album,相片保存在photo中。  
  现在我想得到某个用户某个相册的相片,要保证这组相片是该用户的,并且是该用户的某个相册,请教各位,这段查询要怎么写?  
  我原来是这样写的:  
  SELECT   *   FROM   `photo`,`album`   WHERE   photo.photo_id   =   $photo_id   AND   photo.album_id   =   album.album_id   AND   album.user_id   =   $user_id  
   
  上面$photo_id   和$user_id为传进来的变量。因为是用GET传进来的,所以我才想用严格的查询来确保数据的准确。  
  我想知道我的写法对不对?有没更好的写法?或者是表的关系结构该如何调整,才能做得更好一点。 问题点数:0、回复次数:3Top

1 楼lxf_1976(小木)回复于 2003-12-01 12:32:02 得分 0

你的写法也可以,但结果集合中包含了photo和album两个表的所有字段,不知道是不是你需要的?  
   
  我喜欢写成这样:  
  SELECT   album.album_title,   photo.photo_url   FROM   photo  
    LEFT   JOIN   album   ON   album.album_id   =   photo.album_id  
    LEFT   JOIN   users   ON   users.user_id   =   album.user_id  
    WHERE   photo.photo_id   =   $photo_id   AND   users.user_id   =   $user_id  
   
  这样我可以从SQL语句更直观的知道所使用的索引以及牵涉的表,当然前提是3个表的id字段都建了索引Top

2 楼yyytoyyy(小海)回复于 2003-12-01 22:23:57 得分 0

谢谢回答,我在想,是否我在photo表中增加一个user_id字段,只用到一个表进行查询就可以达到我的目的,这样是不是更方便些?Top

3 楼yyytoyyy(小海)回复于 2003-12-01 22:29:42 得分 0

另外,我希望有人能介绍一些关于数据库表的设计方面的书籍或资料,主要讲如何使数据库设计更合理、更快、更节省空间等等。Top

相关问题

  • 查询“是/否”字段该怎么写?
  • 查询的查询sqlserver怎么写?
  • 高级查询:查询字段和条件表达式该怎么写?
  • 模糊查询怎么写?
  • 这个查询怎么写?
  • 查询语句怎么写?
  • 这个查询怎么写?
  • 这个查询怎么写?
  • 这个查询怎么写?
  • 这个查询怎么写?

关键词

  • 查询
  • 字段
  • 相册
  • 用户
  • 相片
  • album
  • photo
  • 表
  • 写法
  • 知道

得分解答快速导航

  • 帖主:yyytoyyy

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo