У меня есть две таблицы. Фотографии и галереи со следующей структурой:
———————————————–
Таблица: фотографии
———————————————–
–фото —– владелец – галерея – заказ
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 ——- public –
30 – Галерея 3 ———- 23 ——- public –
Связь между двумя таблицами заключается в том, что photos.gallery = galleries.id
Я хочу получить список (используя цикл while) каждой галереи с конкретным типом доступа (private) и получить снимок photos.photo из таблицы фотографий для каждой галереи, где порядок = 1.
Должен ли я использовать внутреннее соединение, левое соединение или что? Я попробовал ниже, и это не сработало. Может кто-то, пожалуйста, помогите мне понять, что я делаю неправильно?
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();; }
Вместо:
AND photos.count = '1'"))
в конце запроса это должно быть:
AND photos.order = '1'"))