Как через php обратиться к конкретному столбцу sql при inner join?

0

Пытаюсь вывести запрос sql, содержащий INNER JOIN, посредством php. Однако в объединяемых таблицах есть несколько столбцов 'name'. Как через php обратиться к конкретному столбцу?

$query = $mysqli->query("SELECT * FROM `movie` INNER JOIN categories ON movie.category_id = categories.id INNER JOIN descriptions ON movie.descriptions_id = descriptions.id");
while ($row = mysqli_fetch_assoc($query)) {
echo $row['name']." - ".$row['name']." - ".$row['name']." - ".$row['year']."<br>";
}

php
mysql

2 ответов

1

Нужно вместо обычного "SELECT *" использовать  алиасы "SELECT movie.id AS m_id", было где-то в курсах.

SELECT movie.id as m_id, descriptions.id as d_id и так далее, потом в цикле обращаться к ним как названы в алиасах: m_id и d_id: первый - это поле id в таблице movie, второй - это поле id в таблице descriptions. В общем у кого есть одинаковые названия полей задаются алиасы.

Вот пример алиасов и джоина нескольких таблиц:

$query = $mysqli->query('SELECT movie.id as mov_id, categories.id as cat_id, movie.name as mov_name, categories.name as cat_name, movie.year as mov_year, descriptions.id as des_id, descriptions.name as des_name FROM `movie`
LEFT JOIN categories ON categories.id = movie.category_id
LEFT JOIN descriptions ON descriptions.id = movie.description_id');

while ( $row = mysqli_fetch_assoc($query) ) {
    echo $row['mov_name'].$row['cat_name'].$row['mov_year'].$row['des_name'].'<br>';
}
0

Понял, большое спасибо! 

Sign up or Log in to write an answer