从具有相同列名的多个表中获取并打印结果。以下是我的问题:我正在尝试从salt
和login
表中获取列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);
答案 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";
答案 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