次の構造の 2 つのテーブル..写真とギャラリーがあります:
------------------------------------ ----------------------
表:写真
------------------------------------ -----------
--photo ----- オーナー - ギャラリー - オーダー
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 - -galleryname ---- 所有者 ---- アクセス -
28 -- ギャラリー 1 ---------- 23 ------- 非公開 -
29 -- ギャラリー 2 ------- --- 23 ------- 公開 -
30 -- ギャラリー 3 ---------- 23 ------- 公開 -
2 つのテーブルの関係は、photos.gallery = gallery.id です。
特定のアクセス タイプ (プライベート) を持つすべてのギャラリーのリストを (while ループを使用して) 取得し、順序 = 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();;
}