Как выбрать имена, используя таблицу ссылок?

Поэтому я проверил, разрешено ли вам просматривать эту папку (в настоящее время проверяется, является ли ip моим домашним ip)

Я хочу, чтобы эта проверка была обновлена, чтобы проверить, есть ли у вашей учетной записи права. Поэтому я хочу получить все имена из gallery_folders, где user_id =:user_id (да, pdo, но это не имеет значения для этого)

SELECT      f.name 
FROM        gallery_folders     as f 
LEFT JOIN   gallery_link        as p 
WHERE       f.id = p.folder_id
AND         p.user_id = :user_id

Это где я застрял, я не уверен, как добавить user_id к этому, так что он получит только все (p.folder_id where user_id=:user_id)

Структура базы данных при необходимости:

Папки

  • gallery_folders
    • Я бы
    • название

пользователей

  • gallery_users
    • Я бы
    • имя пользователя
    • пароль
    • знак

Таблица ссылок

  • gallery_link
    • Я бы
    • Идентификатор пользователя
    • галерея

1 ответ

Решение

Если вам нужны только папки, в которых у пользователя есть соответствующие права, вы можете изменить объединение с LEFT JOIN в INNER JOIN, Вы также должны исправить свое заявление о присоединении так, чтобы оно ON f.id = p.folder_id вместо WHERE f.id = p.folder_id,

Я думаю, что это то, что вы после:

SELECT f.name 
FROM gallery_folders f 
INNER JOIN gallery_link p 
ON f.id = p.folder_id
WHERE p.user_id = :user_id
Другие вопросы по тегам