私はゲームで2つのセクションを持ち、問題があります。最初のセクションにゲームがあるとき、私は2番目のセクションで再び彼女を見せたくありません。第二部でshowゲームの制限付きエラーのあるmySQLサブクエリ
SELECT *,platform.platformName FROM games
JOIN platform ON(platform.PlatformID=games.GamePlatform)
WHERE GameDate <= NOW() AND GameSlide = 0
GROUP BY GameName
HAVING 1
ORDER BY `games`.`GameDate` DESC LIMIT 8
:第一部でshowゲーム私が使用しているために は
SELECT *,platform.platformName
FROM games
JOIN platform ON(platform.PlatformID=games.GamePlatform)
WHERE games.GameID
NOT IN(
SELECT GameID
FROM games
WHERE GameDate <= NOW() AND GameSlide = 0
GROUP BY GameName
HAVING 1
ORDER BY `games`.`GameDate` DESC LIMIT 8
) AND platform.PlatformID = 2 AND GameSlide = 0
GROUP BY GameName
HAVING 1
order by rand(dayofyear(CURRENT_DATE)) LIMIT 8
しかし、MySQLの:
SELECT *,platform.platformName
FROM games
JOIN platform ON(platform.PlatformID=games.GamePlatform)
WHERE platform.PlatformID = 2 AND GameSlide = 0
GROUP BY GameName
HAVING 1
order by rand(dayofyear(CURRENT_DATE))
LIMIT 8
私はこのようなサブクエリを作ってみましたコールエラー:#1235 - This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
私を助けてくれますか? 私の英語はすみません。最善を尽くした。
MySQLやMariaDB? [MySQL :: C.4サブクエリの制限](https://dev.mysql.com/doc/refman/5.7/en/subquery-restrictions.html)または [MariaDB :: Subquery Limitations](https:///mariadb.com/kb/en/mariadb/subquery-limitations/) – wchiquito
これがうまくいきましたが、 'ORDER BY GameDate DESC LIMIT 8 'はサブクエリで同じように8つのレコードを与えるわけではありませんセクション1のクエリ(GameDateが一意でないと仮定します)。また、私はHAVING 1が何をするのか混乱しています。いくつかのサンプルレコードを見るのに役立つかもしれません。 – Alan
私は同じ名前と同じリリース日の多くのゲームを持っています 唯一の違いは、プラットフォームにあります。たとえば、PS4、Xbox、PC用のGTA Vです。その中から1つだけを表示したいので、GamesNameにHAVING 1を使用しました。 'LIMIT 8'サブクエリを削除するとすべてのゲームが返されるので、結果に何も表示されず、' ORDER BY GameDate DEST'を削除するとサブクールで 'Limid 8'と' GameDate Desc'を使用する必要があります。最後のゲームを返します。もしあなたが望むなら、databeseとウェブサイトでいくつかのscreeshotsを送ることができます。それはどのように見え、どういう意味ですか? – Frederik