2013-04-10 55 views
-1

我有兩個表,內連接mysql的PHP,如何聯合起來對關係列

「用戶」和「權限」

用戶有一欄:類型INT的「權限」。

權限具有柱:int類型(AI)的「ID」

我想選擇一個用戶並返回的權限列的值,其中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,用戶名= 「鮑勃」,權限= 3

它會說

權限= 「admin」 的

,因爲這是在權限表

回答

0
$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) . "' 

"; 
0

這應該給你的結果值:

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

試試吧。

$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) . "'" 
0
select u.*, p.value from users u, permissions p 
where 
p.id=u.permissions 
and 
u.username='$username' 
and 
u.password='" . md5($password) . "' 
0

你能提供你的兩個表的結構?

我猜你的查詢應該是什麼樣子,我假設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) . "' 
";