1

phpmyadmin の次のクエリは、必要に応じて 3 つの異なるエントリ ID を持つ 3 つの列 (entry_id) を返します。

SELECT sub_1.entry_id, sub_2.entry_id, sub_3.entry_id
FROM exp_judging_portfolios AS jud
LEFT JOIN exp_submissions AS sub_1 ON sub_1.id = jud.rel_id_1
LEFT JOIN exp_submissions AS sub_2 ON sub_2.id = jud.rel_id_2
LEFT JOIN exp_submissions AS sub_3 ON sub_3.id = jud.rel_id_3
WHERE sub_1.member_group = $member_group
AND jud.pre = 1
GROUP BY jud.rel_id_1

ただし、結果をページに返すと、エントリ ID が 1 つだけの単一の配列が得られます。

結果を生成するために使用しているコードは次のとおりです

$sql = "
    SELECT sub_1.entry_id, sub_2.entry_id, sub_3.entry_id
    FROM exp_judging_portfolios AS jud
    LEFT JOIN exp_submissions AS sub_1 ON sub_1.id = jud.rel_id_1
    LEFT JOIN exp_submissions AS sub_2 ON sub_2.id = jud.rel_id_2
    LEFT JOIN exp_submissions AS sub_3 ON sub_3.id = jud.rel_id_3
    WHERE sub_1.member_group = $member_group
    AND jud.pre = 1
    GROUP BY jud.rel_id_1
";
    $query = $this->EE->db->query($sql);
    $submissions_portfolio = $query->result_array();    

print_r($submissions_portfolio);   

返されたものは次のとおりです。

Array ( [0] => 354 ) 

誰かが理由を知っていますか?もしそうなら、3つのエントリIDすべてを返す方法は?

4

1 に答える 1

1

今回結果が 1 つしか得られないのは、選択した 3 つの ID がすべて同じエイリアスを持っているためentry_idです。それらは互いに上書きしてしまいます。

別の名前を付けてみてください。

SELECT sub_1.entry_id AS id_1, sub_2.entry_id AS id_2, sub_3.entry_id AS id_3

于 2013-10-03T12:00:13.497 に答える