0

データベースにクエリを実行していますが、すべての値を返すためにデータベースが必要です。2つのテーブルを結合していますstorage_pathANDusers最初のユーザーは、 user_idフィールドによって最初と2番目のテーブルに存在します。2番目のユーザーはテーブルstorage_pathに存在しませんが、そのユーザーもクエリによって返される必要があります。

どうすればこれを達成できますか?

より明確にするために、これがクエリです...

このクエリは、user_id変数を切り替えるwhileループにあります

$item_id = $row['user_id']; 

$sql = "SELECT MAX(sf.file_id) as file_id, sf.storage_path as image, u.photo_id 
FROM engine4_users u 
LEFT JOIN engine4_storage_files sf
    ON sf.user_id = u.user_id 
WHERE sf.type = 'thumb.icon' AND u.user_id = $item_id";
4

1 に答える 1

0

クエリの問題は、MAX選択フィールドを使用したが、GROUPBYフィールドを指定しなかったという事実に関連しているようです。

これを試して:

$sql = "SELECT MAX(sf.file_id) as file_id, sf.storage_path as image, u.photo_id 
FROM engine4_users u 
LEFT JOIN engine4_storage_files sf
    ON sf.user_id = u.user_id 
WHERE sf.type = 'thumb.icon' AND u.user_id = $item_id
GROUP BY u.user_id";
于 2013-03-22T12:50:24.873 に答える