Intereting Posts
paypal ipn trouble: Спасибо за ваш платеж и не перенаправляем обратно на мой сайт PHP Перенаправление на новую страницу после отправки формы jQuery – получение массива $ _FILES с использованием $ .post Слияние переменных PHP Проблемы расчета подписи для API Amazon Marketplace Неустранимая ошибка: require_once (): требуется неудачное открытие hasMany проблема отношений в Laravel 5.3 + библиотека MongoDB 'jenssegers / laravel-mongodb' Как вывести пользовательское содержимое тела HTTP с помощью CakePHP 3.4? Эховые причины Ошибка «Невозможно испустить заголовки» URL переписать, чтобы добавить каталог в начале URL-адреса Почему вы не должны использовать mysql_fetch_assoc более 1 раза? Как подключить PDF к электронной почте с помощью функции почты PHP Как предотвратить эхо в PHP и поймать, что внутри? Использование require_once для неактивного каталога вверх как определить поисковые роботы с php? PHP-код для получения выделенного текста комбинированного блока

Как объединить таблицы с SQL?

Хорошо, у меня есть две таблицы информации: фильмы и история. В моих фильмах db есть вся информация о фильмах. Это строки в фильмах: id, title, photo, destination, description, rating, length, likes.

В моей истории db есть вся информация о том, какие фильмы пользователь нажал. Это строки в истории: id, user_id, movie_id.

Вопрос

Я работаю над функцией «Моя история». Как показать свою историю, но также получить информацию из фильмов в одном запросе SQL?

Например:

$db->query("SELECT * FROM movies ORDER BY TABLE history WHERE user_id='$id'"); 

Прошу прощения, если ответ кажется простым. Это мой первый год работы с программированием в целом. Спасибо за любую помощь.

Related of "Как объединить таблицы с SQL?"

Ваш запрос:

 SELECT * FROM movies m INNER JOIN history h ON h.movie_id = m.id WHERE h.user_id = $id ORDER BY h.id --not sure what you want to order by, but it goes here 

При этом вам нужно знать о SQL Injection. Вы должны использовать подготовленные инструкции, а не просто добавлять переменные непосредственно в свой запрос.

У вас есть некоторая ошибка в запросе SQL. Я думаю, вы можете попробовать: (в Mysql) SELECT movies.* FROM history INNER JOIN movies ON history.movie_id = movies.id WHERE user_id = $id

Вы ищете JOIN в MySQL. Вы хотите сделать что-то похожее на это:

 SELECT * FROM movies m JOIN history h ON m.id=h.movie_id AND h.user_id = $id ORDER BY <column name>; 

Основная концепция этого JOIN заключается в том, что вы берете первичный ключ из фильмов (id) и присоединяетесь к соответствующему иностранному ключу в истории (movie_id).

Также стоит отметить, что JOIN , CROSS JOIN и INNER JOIN являются синтаксическими эквивалентами в MySQL.

Поскольку вы только начинаете свой первый год в программировании, я настоятельно рекомендую заглянуть в документацию по JOIN и полностью понять ее самостоятельно, а не копировать и вставлять ответ, который работает здесь. Это будет полезно для вас в долгосрочной перспективе! См. Документацию MySQL по синтаксису JOIN .