2016-10-15 6 views
1

私はこのクエリを使用していますが、すべての列でNULLを思いついています。どうすればこれを取り除くことができますか?だからそれは空のセットになりますか?空のセットが必要なときにSQLクエリでNULLが表示される

SELECT players.id, players.room, players.money, players.cellx, players.celly, max(levels.level) as level 
FROM players, levels 
WHERE players.xp - levels.xp >= 0 AND id=12; 

+----+------+-------+-------+-------+-------+ 
| id | room | money | cellx | celly | level | 
+----+------+-------+-------+-------+-------+ 
|NULL| NULL | NULL | NULL | NULL | NULL | 
+----+------+-------+-------+-------+-------+ 
+0

「javascript」と「node.js」というタグはなぜですか? – Lucero

+0

それは私がそれを使っているのですか? –

+0

質問には関係がありません... – Lucero

答えて

1

MAX集約関数を使用することにより、MySQLは暗黙のGROUP BYありません。 http://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html

提案:

  • 使用のMySQL 5.7.5以降、またはこの動作を無効にするONLY_FULL_GROUP_BY設定を設定します。無意味な結果の代わりにエラーメッセージが表示されます。
  • FROM句の複数のテーブルに参加しないでください。代わりにANSI JOIN構文を使用してください。
  • 質問で探しているものを指定してください。そのままのクエリは私には意味をなさない。
  • 集計を計算するには、明示的なGROUP BYまたはウィンドウ関数MAX(...) OVER (...)が必要な場合があります。
関連する問題