讓說我有2 MySQL表「電影」和「看到」MySQL的選擇一行並沒有關係
如果用戶已經看了一部電影沒有在「看到」表中的記錄,他的用戶ID和電影ID
我必須打印所有電影,然後如果用戶已經看到電影打印「已經看過」,否則「看」。
這時我使用PHP與2個seprate查詢:
<?php
$res = mysql_query("SELECT * FROM movies");
while($row = mysql_fetch_assoc($res)) {
echo $row['movie_name'];
$res2 = mysql_query("SELECT * FROM seen WHERE userID = '$uid' AND movieID = '$row[id]' LIMIT 1");
if(mysql_num_rows($res2) == 1) { echo "already watched"; } else { echo "to watch"; }
}
有一種方法做一個單一的查詢?
隨着JOIN的 「movies.id = seen.movieID」 它只能打印wahtched電影,與「WHERE movies.id NOT IN(SELECT seen.movieID FROM在哪裏見過seen.userID = '$ UID') 「它只能打印沒有看過..
我們只是不再這樣做。停止使用PHP的mysql_ API – Strawberry