1

我有两张桌子..照片和画廊具有以下结构:
------------------------------------ ------------
表:照片
------------------------------------ ------------
--照片 ----- 所有者 - 图库 - 订购
123.jpg --------23--------28 ----- - 1
234.jpg --------23--------28 ------ 2
345.jpg --------23-------- 29 ------ 1
456.jpg --------23--------29 ------ 2
567.jpg --------23-- ------30 ------ 1

------------------------------------------------
表:画廊
--------------------------------------------------------
id - -画廊名称 ---- 所有者 ---- 访问 -
28 -- 图库 1 ---------- 23 ------- 私人 -
29 -- 图库 2 -------- --- 23 ------- 公共 -
30 -- 画廊 3 ---------- 23 ------- 公共 -

两张表的关系是photos.gallery = gallery.id

我想获取具有特定访问类型(私有)的每个画廊的列表(使用 while 循环),并从照片表中为 order = 1 的每个画廊获取 photos.photo。

我应该使用内连接、左连接还是什么?我尝试了以下方法,但没有成功。有人可以帮我理解我做错了什么吗?

if ($stmt = $mysqli->prepare("SELECT galleries.id, galleries.galleryname, photos.photo FROM galleries INNER JOIN photos ON galleries.id=photos.gallery WHERE galleries.access = 'private' AND galleries.owner = '23' AND photos.count = '1'")) 
{     
  $stmt->execute();     
  $stmt->bind_result($private_gal_id,$private_gal_name,$private_gal_photo);
  while ($stmt->fetch()) 
    {      
      echo "The results: $private_gal_id - $private_gal_name - $private_gal_photo";
    }
  $stmt->close();;
}
4

1 回答 1

2

代替:

AND photos.count = '1'"))

在查询结束时,它应该是:

AND photos.order = '1'"))

于 2013-01-18T20:44:57.617 回答