J'ai deux sections avec des jeux et j'ai un problème. Quand est le jeu dans la première section, je ne veux pas la montrer à nouveau dans la deuxième section. Pour les jeux de spectacle dans la première section que je utilise:Sous-requête mySQL avec erreur de limites
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
montrer Jeux en deuxième section:
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
J'ai essayé de faire sous-requête comme ceci:
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
Mais MySQL erreur d'appel: #1235 - This version of MariaDB doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Pouvez-vous m'aider s'il vous plaît? Je suis désolé pour mon anglais. J'ai fait de mon mieux.
MySQL ou MariaDB? Voir [MySQL :: C.4 Restrictions sur les sous-requêtes] (https://dev.mysql.com/doc/refman/5.7/fr/subquery-restrictions.html) ou [MariaDB :: Limitations de sous-requête] (https://mariadb.com/kb/fr/mariadb/subquery-limitations/) – wchiquito
Même si cela ne fonctionnait pas, le 'ORDER BY GameDate DESC LIMIT 8 'ne vous donnerait pas nécessairement les mêmes 8 enregistrements dans la sous-requête comme il l'a fait dans la requête de la section 1 (en supposant que GameDate n'est pas unique). Aussi, je suis confus ce que le 'HAVING 1' est pour. Peut-être utile de voir quelques exemples d'enregistrements. – Alan
J'ai beaucoup de jeux avec le même nom et la même date de sortie la seule différence est dans la plate-forme. Par exemple: GTA V pour PS4, Xbox et PC et je veux en montrer un seul, alors j'ai utilisé HAVING 1 sur GamesName. J'ai besoin d'utiliser 'Limid 8' et' commander par GameDate Desc' dans la sous-requête car quand je supprime 'LIMIT 8' Sous-requête retourne tous les jeux donc le résultat ne montre rien et quand je supprime le 'ORDER BY GameDate DEST' Il doesn' t renvoie les jeux lasteted. Si vous voulez je peux vous envoyer quelques screeshots avec databese et site Web comment c'est l'air et comment je le pense. :) – Frederik