2017-11-29 4 views
0

データからレコードを読み取ることができません。なぜですか? コード:maxによるjoinグループに - レコードを読み取る方法

$_query = mysqli_query($mysqli , "SELECT o.id,o.surname,o.name,so.data FROM mowcy AS o 
      LEFT JOIN zeb AS so ON so.id=o.id AND so.mowca=o.mowca 
      WHERE 
      o.archiwum = 0 
      AND o.id<>1 
      AND o.mowca = 3 

       GROUP BY o.id 
       ORDER BY ISNULL(o.id) desc, MAX(so.data) ") 
       or die(mysqli_error($mysqli));  

がエラーを示しています

list is not in GROUP BY clause and contains nonaggregated column 'rafik73_tereny.so.data' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

答えて

2

は次のように試してみてください。クエリで何かをグループ化するときにエラーがあなたに指示したよう

SELECT o.id,MAX(so.data) FROM mowcy AS o 
      LEFT JOIN zeb AS so ON so.id=o.id AND so.mowca=o.mowca 
      WHERE 
      o.archiwum = 0 
      AND o.id<>1 
      AND o.mowca = 3 
       GROUP BY o.id 
       ORDER BY ISNULL(o.id) desc, MAX(so.data) 

は、あなただけのだけグループ化フィールドと集計列を選択する必要があります。

+0

**データ**には値は表示されません。 **データ**はテーブルにのみ存在します** zeb ** – Rafik73

+0

あなたの母性データと条件を確認してください。 "o.archiwum = 0 AND o.id <> 1 AND o.mowca = 3" – lucky

+0

条件 "o.archiwum = 0 AND o.id <> 1 AND o.mowca = 3"はOKです。 SELECTのso.dataにMAX(so.data)を変更し、** data **のGROUP BYの値にso.dataを追加すると、重複して表示されます。 – Rafik73

関連する問題