【问题标题】:inner join mysql PHP, how to join up on relational column内部加入mysql PHP,如何加入关系列
【发布时间】:2013-04-02 01:48:32
【问题描述】:

我有两张桌子,

“用户”和“权限”

users 有一列:'permissions',类型为 int

permissions 有一列:'id' of type int (AI)

我想选择一个用户并返回权限列的值,其中 id = 与用户 id 相同。

我试过这个:

$queryString = "
    SELECT 
        u.*, 
        p.value
    FROM 
        users u,
        permissions p
    WHERE 
        username = '$username' AND
        password = '" . md5( $password ) . "'
    INNER JOIN 
        user u on p.id = u.permissions
";

所以不要返回用户:

id = 1,用户名 = "bob",权限 = 3

它会说

权限 = “管理员”

因为这是权限表中的值

【问题讨论】:

    标签: mysql select inner-join


    【解决方案1】:

    你能提供你的两张表的结构吗?

    我猜你的查询应该是这样的,我假设 p.value 包含权限的名称:

    $queryString = "
    SELECT 
        u.id,
        u.username,
        p.value AS permissions
    FROM 
        users u
    INNER JOIN
        permissions p
    ON
        p.id = u.permissions
    WHERE 
        username = '$username' AND
        password = '" . md5( $password ) . "'
    ";
    

    【讨论】:

      【解决方案2】:
      select u.*, p.value from users u, permissions p 
      where
      p.id=u.permissions
      and
      u.username='$username'
      and
      u.password='" . md5( $password ) . "'
      

      【讨论】:

        【解决方案3】:

        试试看。

         $queryString = "SELECT u.*, p.value
            FROM users AS u
            INNER JOIN permissions AS p ON u.permissions = p.id
            WHERE 
               u.username = '$username' AND
               u.password = '" . md5( $password ) . "'"
        

        【讨论】:

          【解决方案4】:

          这应该会给你结果:

          SELECT  
              p.value
          FROM 
              permissions p
          INNER JOIN 
              users u on p.id = u.permissions
          WHERE 
              username = '$username' AND
              password = '" . md5( $password ) . "'
          

          【讨论】:

            【解决方案5】:
            $queryString = "
                SELECT 
                    u.*, 
                    p.value
                FROM 
                    users u INNER JOIN 
                    permissions p ON
                    p.id = u.permissions
                WHERE 
                    u.username = '$username' AND
                    u.password = '" . md5( $password ) . "'
            
            ";
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-07-26
              • 1970-01-01
              • 2018-12-15
              • 1970-01-01
              • 2017-07-27
              • 2016-09-25
              相关资源
              最近更新 更多