如何将表与SQL结合使用?

时间:2016-02-17 15:54:56

标签: php mysql

好的,我有两个信息表:电影&历史。我的电影数据库包含有关电影的所有信息。这些是电影中的行:id,标题,照片,目的地,描述,评级,长度,喜欢。

我的历史记录数据库包含有关用户点击的电影的所有信息。这些是历史记录中的行:id,user_id,movie_id。

问题

我正致力于一项名为"我的历史的功能。"如何显示他们的历史记录,还可以在一个SQL查询中从电影中获取信息?

例如:

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

如果答案看似简单,我道歉。这是我第一年使用编程。感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

您的查询将是:

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注入。您应该使用prepared statements而不是直接在查询中添加变量。

答案 1 :(得分:0)

您的查询SQL中有一些错误。 我想你可以尝试:(在Mysql中) SELECT movies.* FROM history INNER JOIN movies ON history.movie_id = movies.id WHERE user_id = $id

答案 2 :(得分:0)

您在寻找的是MySQL中的total = 13.54 str(total) >> '13.54' 。您将要执行与此类似的操作:

JOIN

这个SELECT * FROM movies m JOIN history h ON m.id=h.movie_id AND h.user_id = $id ORDER BY <column name>; 背后的基本概念是你从电影(id)中获取主键并在历史上加入相应的外键(movie_id)。

值得注意的是,JOINJOINCROSS JOIN都是MySQL中的语法等价物。

由于您刚刚开始编程的第一年,我强烈建议您查看INNER JOIN上的文档并自己完全理解它,而不是复制和粘贴一个适用于此处的答案。从长远来看,这对你有利!请参阅JOIN语法here上的MySQL文档。

相关问题