2 つの異なるテーブルから情報にアクセスして情報を取得しようとしていますが、テーブル tbl_fruits にリストされている果物の数を保留して、ユーザー情報を複数回取得しています。
ユーザー情報を一度表示するだけで、ユーザーに関連付けられた果物をいくつでも同時に取得できるようにしたいと考えています。
2 つのテーブル: tbl_users: ユーザー ID 名 姓
tbl_fruits: ユーザー ID フルーツ
コード例では、userID 4 には、tbl_fruit で彼に関連付けられた 3 つの果物があります。以下の結果からわかるように、ユーザー情報は複数回リストされています。ユーザー情報が 1 回プルされ、果物が 3 回表示されるようにコードを書き直すにはどうすればよいですか。
$clientID = "4";
try
{ $stmt = $dbcon1 ->query("SELECT
tbl_fruits.fruit,
tbl_users.userid,
tbl_users.firstname,
tbl_users.lastname
FROM tbl_users
LEFT JOIN tbl_fruits
ON tbl_fruits.userid = tbl_users.userid
WHERE tbl_users.userid = '$clientID' ");
$testArray = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
catch(PDOException $e)
{ echo $e->getMessage(); }
echo '<pre>';
print_r($testArray);
echo '</pre>';
結果
array
(
[0] => Array
(
[fruit] => Apple
[userid] => 4
[firstname] => John
[lastname] => Smith
)
[1] => Array
(
[fruit] => Orange
[userid] => 4
[firstname] => John
[lastname] => Smith
)
[2] => Array
(
[fruit] => Banana
[userid] => 4
[firstname] => John
[lastname] => Smith
)
)