我在数据库中有两个表:
comments table users table
| u_id | text | | u_id | premium |
| 9 | .. | | 9 | 1 |
| 10 | .. | | 10 | 0 |
| 9 | .. |
我想从用户的评论表中选择文本,以防该用户具有高级状态(1)。但是,如果我想检查这个用户的状态,我需要做另一个mysql查询。这可以在一个查询中检查吗?
$premium=sql_select("SELECT premium FROM users WHERE u_id LIKE '".$_GET['u_id']."'");
if ($premium[1][0]=1) {
$text=mysql_query("SELECT text FROM comments WHERE u_id LIKE '".$_GET['u_id']."'");
}
else //this user has no premium account so text will not be selected.
答案 0 :(得分:1)
以下查询加入表并获取所有具有溢价1的用户。
SELECT c.u_id, c.text FROM comments_table as c
LEFT JOIN ON users_table as u ON u.u_id = c.u_id
WHERE u.premium = 1
答案 1 :(得分:0)
使用(内部)联接:
SELECT text
FROM comments_table c
JOIN users_table u ON u.u_id = c.u_id AND u.premium = 1
WHERE c.u_id = ?