具有相同列名的MYSQL表

时间:2016-04-28 12:57:12

标签: php mysql

从具有相同列名的多个表中获取并打印结果。以下是我的问题:我正在尝试从saltlogin表中获取列cookie

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);

5 个答案:

答案 0 :(得分:1)

在mysql中使用别名

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

有关详细信息,请参阅MySQL alias for SELECT * columns

答案 1 :(得分:0)

使用别名SELECT login.salt 作为login_salt

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

答案 3 :(得分: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);

答案 4 :(得分:0)

为列设置别名:

SELECT login.salt as login_salt, cookie.salt as cookie_salt FROM login, cookie WHERE login.user_id AND cookie.user_id = :user_id
相关问题