我有两张桌子:
1)game_follower(存储哪个用户正在关注哪个游戏):
___________________________
| ID | game_id | user_id |
| 1 | 1 | 1 |
| 2 | 2 | 1 |
2)视频:
__________________________________
| ID | game_id | content | data |
| 1 | 2 | blah | blah |
| 2 | 1 | blah | blah |
我正在尝试实现一个Twitter式的跟随系统,但是我在编写执行以下操作的查询时遇到了问题:
我可以使用单独的查询来执行此操作,但我被告知使用多个查询对性能有害,因此如何使用一个查询执行此操作?
答案 0 :(得分:3)
试试这个
SELECT v.game_id
FROM videos v
INNER JOIN game_follower gf ON gf.game_id = v.game_id
WHERE gf.user_id = 1
答案 1 :(得分:1)
您应该使用一个查询来查看JOINs(与单独提取数据相比,这会大大提高速度)。
答案 2 :(得分:1)
$conn = new PDO(CONNECTION_DETAILS, $username, $pass);
$variable = 1;
$sql = "SELECT game_follower.game_id FROM game_follower ";
$sql .= "INNER JOIN videos ";
$sql .= "ON game_follower.game_id = videos.game_id ";
$sql .= "WHERE game_follower.user_id = :id";
$query = $conn->prepare($sql);
$query->bindParam(':id', $variable, PDO::PARAM_INT);
$query->execute();
那样的东西?