2016-04-28 2 views
0

Извлечение и печать результатов из нескольких таблиц, имеющих одинаковое имя столбца. Вот мой вопрос: я пытаюсь получить столбец salt от login и cookie стол.Таблицы 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

использовать псевдоним ВЫБРАТЬ login.salt как login_salt

0

Try псевдоним, Псевдоним может быть использован в запросе списка выбора, чтобы дать столбец другое имя.

$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

набор псевдонимов для колонок:

SELECT login.salt as login_salt, cookie.salt as cookie_salt FROM login, cookie WHERE login.user_id AND cookie.user_id = :user_id 
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

+2

Его плохая идея здесь, чтобы процитировать w3schools – RiggsFolly

+0

Спасибо, что сообщите мне. –

Смежные вопросы