如何选择两个表来比较它们并在PHP Mysql中获得单个列值

时间:2014-01-29 09:46:01

标签: php mysql sql

跟踪表

关注表

这是我拥有的两张桌子。我想通过将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

请在我出错的地方帮助我?

3 个答案:

答案 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());