2011-12-25 21 views
0

私は最初のテーブルsocial_membersからのみデータを受け取り、他の2つのテーブル_meminfo_memtextは受け取っていません。両方のテーブルには_meminfo_memtextという同じm_idの値を持つデータがあります。結合して左結合でデータを取得しない

$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

問合せでは、social_members表のデータのみが必要であると明示的に言います。

SELECT sm.* .... 

は、その効果(sm。* =テーブルのすべての列がsmとエイリアス)を持ちます。あなたは、クエリによって生成されたすべての列をしたい場合は、代わりに

SELECT * .... 
1

を行う必要があり、その後、あなたはあなたのSELECT句でsocial_meminfoとsocial_memtext列を言及する必要があります。

この

SELECT * from ..... 
を試してみてください
関連する問題