加入和左加入不拉数据

时间:2011-12-25 00:49:32

标签: php mysql

我只收到第一个表social_members的数据,而不是其他两个表_meminfo_memtext。这两个表中的数据都包含m_id_meminfo中相同的_memtext值。

$res = mysql_query("SELECT sm.*, DATE_FORMAT(sm.m_lld,'%m/%d/%y') 
                    AS m_lld_formatted 
                    FROM social_members sm
                    JOIN social_meminfo smi ON (sm.m_id = smi.m_id)
                    LEFT OUTER JOIN social_memtext smt ON (sm.m_id = smt.m_id)
                    WHERE sm.m_user = '".mysql_real_escape_string($en['user'])."'"); 

if (@mysql_num_rows($res) == 0) call404();
$line = @mysql_fetch_assoc($res);
foreach ($line as $key => $value) {
        $en['m'.$key] = str_replace("\n",'<br/>',stripslashes($value));
}

echo '<pre>'; print_r($line); echo '</pre>';
echo $en['mm_pos']; // test from social_meminfo 

2 个答案:

答案 0 :(得分:2)

在您的查询中,您明确表示您只需要来自social_members表的数据。

SELECT sm.* ....

具有该效果(sm。* =表中的所有列别名为sm)。如果您想要查询生成的所有列,那么您应该改为

SELECT * ....

答案 1 :(得分:1)

您需要在SELECT子句中提及social_meminfo和social_memtext列。

试试这个

SELECT * from .....