跟踪表
关注表
这是我拥有的两张桌子。我想通过将post_user_id和clicked_id与我的会话用户ID与两个表进行比较,从两个表中获取'post_id'。
我试过了这个问题。
$lifestream = mysql_query("SELECT * FROM peoplelist_track t, peoplelist_follow f WHERE t.post_user_id != '$session_user_id' AND f.post_user_id != '$session_user_id'
AND t.clicked_id = '$session_user_id' AND f.clicked_id = '$session_user_id'") or die(mysql_error());
$chk_lifestream = mysql_num_rows($lifestream); if($chk_lifestream > 0){
while($row_lifestream = mysql_fetch_array($lifestream)){
echo $post_id = $row_lifestream['post_id'];
}
}
这里$ session_user_id = 9
我得到的输出是
25 25 25 25 25 25 25 25 25 25 19 19 19 19 19 18 18 18 18 18
这些数字正在重复。但它不应该。 我应该得到一个输出 25 19 18
请在我出错的地方帮助我?
答案 0 :(得分:2)
如果您不想加入两个表格,请使用UNION operator。
例如(from w3school):
SELECT city
FROM customers
UNION
SELECT city
FROM suppliers
ORDER BY city;
答案 1 :(得分:0)
使用DISTINCT:
$lifestream = mysql_query(" SELECT DISTINCT(post_id)
FROM peoplelist_track t,
peoplelist_follow f
WHERE t.post_user_id != '$session_user_id'
AND f.post_user_id != '$session_user_id'
AND t.clicked_id = '$session_user_id'
AND f.clicked_id = '$session_user_id'")
or die(mysql_error());
它只返回不同的值。
答案 2 :(得分:0)
表格未连接,请尝试连接它们。
在此示例中,尝试使用Parent表列替换<parent_col>
,使用Child表引用列替换<child_col>
。
$lifestream = mysql_query("SELECT DISTINCT(POST_ID) FROM peoplelist_track t, peoplelist_follow f
WHERE t.post_user_id != '$session_user_id'
AND f.post_user_id != '$session_user_id'
AND t.clicked_id = '$session_user_id'
AND f.clicked_id = '$session_user_id'
AND t.<parent_col> = f.<child_col>")
or die(mysql_error());