为什么我的成员id列返回null?

时间:2014-10-28 02:28:38

标签: php mysql

由于某种原因,我的巨大查询中的成员id字段(auto inc。)返回null。我已经尝试了每种选择它的方式... m.member_id AS member_id等我无法弄清楚为什么在表中存在该字段的值时返回null。

<?php    
public function get_info($criteria = 0){            
        if(is_numeric($criteria)){
            $where = "WHERE m.member_id = ".$criteria;
        } else {
            $where = "WHERE email_address = '".$criteria."'";
        }
        $query_member = "
            SELECT
                m.member_id AS member_id, m.display_name, m.email_address, m.group_id, m.status, m.activation_code, UNIX_TIMESTAMP(m.date_joined) AS date_joined,
                m.gender, m.location, m.biography, m.mantra, m.birth_date, m.results_per_page, m.admin_emails, m.member_emails, m.last_active, m.avatar_id, 
                m.banner_id, m.signature, m.newsletter_subscription, m.recruiting_status, m.facebook_username, m.website, m.steam_username, m.xboxlive_gamertag, m.psn_id,
                g.group_id, g.title, g.description,
                a.attachment_id, a.file_name,      
                f.message_id, f.author_id, COUNT(f.message_id) AS forum_count,  
                b.attachment_id AS banner_id, b.file_name AS banner_file,
                mr.request_id, mr.author_id, mr.recipient_id, mr.status, COUNT(mr.request_id) AS total_friends,
                tm.team_member_id, tm.member_id, tm.team_id
            FROM members AS m
            LEFT JOIN member_groups AS g ON (m.group_id = g.group_id)   
            LEFT JOIN attachments AS a ON (m.avatar_id = a.attachment_id)         
            LEFT JOIN forum_messages AS f ON (m.member_id = f.author_id)
            LEFT JOIN attachments AS b ON (m.banner_id = b.attachment_id)
            LEFT JOIN member_requests AS mr ON (m.member_id = mr.author_id OR m.member_id = mr.recipient_id) AND mr.status = 1
            LEFT JOIN team_members AS tm ON (m.member_id = tm.member_id) AND date_left = ''
            ".$where."
            GROUP BY m.member_id
            LIMIT 1";     

        //show_error($query_member);    
        if($query_member = $this->db->query($query_member)){            
            if($query_member->num_rows() > 0){                    
                 var_dump($query_member->row_array());

1 个答案:

答案 0 :(得分:0)

因为您选择了两个具有相同名称的字段。所以MySQL将返回最后一个的结果。添加别名:

SELECT m.member_id AS member_id_1, tm.member_id  AS member_id_2 ...