Partage
  • Partager sur Facebook
  • Partager sur Twitter

Inverser requête SQL

Sujet résolu
1 juillet 2022 à 9:40:42

Bonjour,

Question toute bête : j'ai une requête SQL qui me retourne des résultats mais j'aimerai "INVERSER" le sens de cette requête. En gros, avoir les résultats qui ne répondent pas à ces critères.

C'est simplement un problème de logique que je n'arrive pas trop à résoudre : j'aimerai récupérer les matchs dont l'ID n'est pas dans la table wp_postmeta. Avec la requête suivante je récupére tous les matchs dont l'ID se trouve dans la table wp_postmeta justement....

SELECT
			m.id as id_match,
			m.datematch,
			m.ID_equipe,
			m.ID_lieu,
		    m.presse,
			e.nom_equipe,
			e.abrev_equipe,
		       wp.meta_value,
wp.meta_key
		FROM
			equipes e
		INNER JOIN 
			matchs m
		ON 
			m.ID_equipe = e.ID
		INNER JOIN
			    wp_postmeta wp
		ON 
		    wp.meta_value = m.id
		WHERE 
			e.ID =1
		AND 
		      m.ID_lieu != 3
AND wp.meta_key = "_select_match_from_db"
		ORDER BY 
			m.datematch DESC



Merci de votre aide

  • Partager sur Facebook
  • Partager sur Twitter
1 juillet 2022 à 9:42:23

Bonjour,

Déplacement vers un forum plus approprié

Le sujet est déplacé de la section PHP vers la section Base de données

  • Partager sur Facebook
  • Partager sur Twitter

Pas d'aide concernant le code par MP, le forum est là pour ça :)

1 juillet 2022 à 10:26:49

Plus d'explication sur mon problème :

j'ai une table matchs avec en gros des ID. Ces ID sont répétés dans la table wp_postmeta en fonction de ce qu'on rentre sur le site. Donc j'ai :

  • des ID de matchs qui sont dans wp_postmeta ET dans matchs
  • des id de matchs qui ne sont QUE dans matchs.

J'aimerai faire une requête pour récupérer ceux qui sont UNIQUEMENT dans matchs.

-
Edité par zazzou 1 juillet 2022 à 10:27:13

  • Partager sur Facebook
  • Partager sur Twitter
1 juillet 2022 à 11:14:23

LEFT JOIN wp_postmeta wp au lieu de INNER JOIN wp_postmeta wp + ajouter dans le WHERE la condition wp.meta_value IS NULL ?

  • Partager sur Facebook
  • Partager sur Twitter
1 juillet 2022 à 13:31:11

Bonjour,

Si j'ai compris la même chose que julp, et pour être plus démonstratif :

SELECT
	m.id as id_match,
	m.datematch,
	m.ID_equipe,
	m.ID_lieu,
	m.presse,
	e.nom_equipe,
	e.abrev_equipe,
	wp.meta_value
FROM
	matchs m
		INNER JOIN equipes e
			ON m.ID_equipe = e.ID
		LEFT JOIN wp_postmeta wp
			ON wp.meta_value = m.id
			AND wp.meta_key = "_select_match_from_db"
WHERE
	e.ID =1
	AND m.ID_lieu != 3
	AND wp.meta_value IS NULL
ORDER BY m.datematch DESC

J'ai enlevé du SELECT les colonnes de la table wp_postmeta qui seront toujours NULL ici.

-
Edité par Benzouye 1 juillet 2022 à 13:32:16

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
1 juillet 2022 à 14:09:57

Aaaah yes ! Okay :-)

C'est tout bête... J'avais réussi différemment mais de manière un peu tordue donc c'est super comme ça !

Par contre, autre demande, car en fait cette requête me permet de remplir une liste déroulante. Mais j'aimerais conserver dans ma liste déroulante celui qui a été choisi. Donc c'est un id_match qui est présent dans la table wp_postmeta.

Du coup cela revient à faire une sorte d'exception où je veux tous les ID matchs qui sont seulement dans matchs et pas dans wp_postmeta SAUF celui en cours qui peut être identifié par son post_id que j'ai dans wp_postmeta...

Merci beaucoup de vos pistes.

EDIT.

En ajoutant ceci il me semble que cela marche :

OR wp.post_id = 98

-
Edité par zazzou 1 juillet 2022 à 14:19:47

  • Partager sur Facebook
  • Partager sur Twitter
1 juillet 2022 à 14:21:08

Rien compris 😂

Peux-tu expliquer plus précisément ? Avec des copies d'écran par exemple ...

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
1 juillet 2022 à 14:21:56

Ah ah ! Ouais ce n'était pas clair, mais j'ai édité mon message précédent et ai trouvé la solution ^^
  • Partager sur Facebook
  • Partager sur Twitter