JeuWeb - Crée ton jeu par navigateur
Requête MySQL avec Join - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Requête MySQL avec Join (/showthread.php?tid=1859)

Pages : 1 2 3 4


RE: Requète MySQL avec join - Ludvig - 02-03-2008

Merci mais ça marche pas encore, avec ça :

SELECT player.id
FROM player
LEFT JOIN reputation
ON player.id = reputation.playerid
WHERE reputation.value = NULL OR reputation.value < 100

Je sors que les joueurs qui en ont une entrée correspondant dans la table reputation (ie. player.id = reputation.playerid).

Si la table reputation contient aucun valeur (si je fais un "Empty") je sort personne avec la requête...


RE: Requète MySQL avec join - Anthor - 02-03-2008

Le SELECT multiple simule un INNER JOIN (voir un CROSS JOIN sur certaines configurations serveurs) qui ne renvoit un résultat que si la ligne existe sur les deux tables, le LEFT JOIN renvoi toute les lignes tant qu'elles existent dans la table situé a gauche de la requête.

Code PHP :
<?php 
SELECT p
.id
FROM player
AS p
LEFT JOIN reputation
AS r
ON p
.id = r.playerid
WHERE r
.valeur < 100

D'ailleurs je pense que cela est mieux ainsi il suffit ensuite de tester si e champs retourné est NULL ou inférieur à 100.


RE: Requète MySQL avec join - Loetheri - 02-03-2008

Ludvig, sinon essaye sans la condition WHERE. Normallement, tu devrais avoir ce que dit Anthor.


RE: Requète MySQL avec join - rachids - 02-03-2008

Merci pour ta réponse Anthor Wink


RE: Requète MySQL avec join - Ludvig - 02-03-2008

Arf ça marche pas du tout !

SELECT player.id
FROM player, reputation
WHERE reputation.value = NULL
OR (
reputation.value <100
AND reputation.reputid =1
)

par exemple sors une reponse par entrée dans la table reputation et cela Par player (ex. l'id player 6 sorts plein de fois).


Sinon Loetheri, comment ça utiliser WHERE :heu: ??



Le truc c'est que soit il y a une entrée dans "Reputation" pour un certain id (avec une valeur) sinon il n'y a pas d'entrée du tout (c'est
pas une entrée où la valeur vaut NULL).


arf...


RE: Requète MySQL avec join - rachids - 02-03-2008

Il manque la jointure.


RE: Requète MySQL avec join - Loetheri - 02-03-2008

SANS la condition WHERE !
Quand tu essayes, tu fais cela sous phpMyAdmin ? Tu sais nous montrer une image de tes résultats ?


RE: Requète MySQL avec join - jo_link_noir - 02-03-2008

SELECT player.id
FROM player
LEFT JOIN reputation
ON player.id = reputation.playerid
WHERE player.id < 100

(juste changer la condition where par rapport à ce qu'à dit Anthor)


RE: Requète MySQL avec join - Anthor - 02-03-2008

@j-12, pourquoi vouloir sélectionner uniquement les joueurs ayant un id inférieur à 100 ?

@Ludvig, Peut tu nous faire un petit export de base pour que l'on fasse des essais plus simplement ?


RE: Requète MySQL avec join - jo_link_noir - 02-03-2008

c'est ce que voulait Ludvig...