2016-04-28 64 views
0

從具有相同列名稱的多個表中獲取並打印結果。以下是我的查詢:我正在嘗試從logincookie表中獲取salt列。具有相同列名稱的MYSQL表格

SELECT login.salt 
    , cookie.salt 
    FROM login 
    , cookie 
WHERE login.user_id 
    AND cookie.user_id = :user_id` 

login 
+---------------------------+ 
| user_id |  salt  | 
+---------+-----------------+ 
| 1  | fromLogin | 
| 2  | fromLogin | 

cookie 
+---------------------------+ 
| user_id |  salt  | 
+---------+-----------------+ 
| 1  | fromCookie | 
| 2  | fromCookie | 

結果是:

Array ([salt] => fromCookie)

如何打印結果都出來?

PHP

$user_id = 1; 

$sql = "SELECT login.salt, cookie.salt FROM login, cookie WHERE login.user_id AND cookie.user_id = :user_id"; 

$params = array(
     'user_id' => $user_id 
     ); 

$stmt = $db->justConnect()->prepare($sql); 
$stmt->execute($params); 
$result = $stmt->fetch(PDO::FETCH_ASSOC); 

print_r($result); 
+3

使用別名查詢分化。 – RJParikh

+0

如果我必須從100個表中取鹽,所以我只是喜歡's1','s2','s3' ...... – Jimmy

+3

從一本關於PHP和MySQL的好書(或相當流行)開始。這是基本的東西。如果你有100張桌子,事情就會變得非常非常錯誤。 – Strawberry

回答

0

使用alias與查詢。

$user_id = 1; 

$sql = "SELECT login.salt as loginSalt, cookie.salt as cookieSalt FROM login, cookie WHERE login.user_id AND cookie.user_id = :user_id"; 

$params = array(
     'user_id' => $user_id 
     ); 

$stmt = $db->justConnect()->prepare($sql); 
$stmt->execute($params); 
$result = $stmt->fetch(PDO::FETCH_ASSOC); 

print_r($result); 
0

使用別名SELECT login.salt 爲login_salt

0

嘗試別名,別名可以在查詢選擇列表中用來給一列不同的名稱。

$sql = "SELECT login.salt as s1, cookie.salt as s2 FROM login, cookie WHERE login.user_id AND cookie.user_id = :user_id"; 

Reference 1

Reference 2

0

爲您列集別名:mysql中

$sql = "SELECT login.salt as s1, cookie.salt as s2 
     FROM login, cookie 
     WHERE login.user_id 
      AND cookie.user_id = :user_id";  

欲瞭解更多信息

SELECT login.salt as login_salt, cookie.salt as cookie_salt FROM login, cookie WHERE login.user_id AND cookie.user_id = :user_id 
相關問題