如何使用链接表选择名称?

时间:2014-05-07 17:54:15

标签: php mysql sql join linktable

所以我检查一下你是否可以查看该文件夹(目前正在检查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
    • ID
    • 名称

用户

  • gallery_users
    • ID
    • 用户名
    • 密码
    • 令牌

链接表

  • gallery_link
    • ID
    • USER_ID

1 个答案:

答案 0 :(得分: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