|
Bas de page | |
---|---|
Auteur | Sujet : Requête SQL: Jointure avec correspondance de 2 colonnes |
![]() Publicité | Posté le 20-06-2023 à 13:37:38 ![]() ![]() |
rufo Pas me confondre avec Lycos! | On va laisser de côté la structure de la table "equipes" qui me paraît pas être une bonne idée du tout puisque tu ne vas jamais pouvoir mettre plus de 2 membres et si tu as une équipe avec un seul membre, la colonne membre2 devra avoir la valeur NULL ce qui va compliquer certaines requêtes.
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
bingojm | Non non. Dans tous les cas, j’aurai toujours 2 personnes, ni plus ni moins. . J’ai parlé d’équipe pour que ce soit plus facile à comprendre. |
bingojm |
|
rufo Pas me confondre avec Lycos! | Sans avoir le MCD ou le MLD de ta BD ni quels résultats tu veux afficher exactement, ça va être compliqué. --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
bingojm |
Message édité par bingojm le 21-06-2023 à 07:40:51 |
rufo Pas me confondre avec Lycos! | Tu sais que tu peux faire plus requêtes SQL et laisser ensuite le code de ton appli (du PHP ?) prendre les données récupérées et les mettre aux bon endroits dans l'IHM. Parce que j'ai l'impression que tu essayes de faire beaucoup de choses dans une même requête complexe alors que tu pourrais le faire plus facilement dans x requêtes.
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
antac .. | Tu peux aussi t'en sortir avec une sous requête dans le SELECT si tu veux éviter les left join. C'est moins élégant, pas performant mais ça peut aider.
|
bingojm | Ok, je vais essayer d'éviter pour avoir qqch de propre, du moins le plus possible.
|
rufo Pas me confondre avec Lycos! | Pour le tri par date, tu peux stocker les résultats de chaque requête dans un seul tableau associatif dont les clés sont les dates au format yyy-mm-aa. A chaque clé est associé un tableau associatif qui contient les enregistrements (les clés sont les noms des colonnes du SELECT).
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
![]() Publicité | Posté le 27-06-2023 à 22:57:45 ![]() ![]() |
bingojm | Super merci. Je vais me documenter là-dessus!
|
rufo Pas me confondre avec Lycos! | Pourquoi tu as mis leads_liste.date > '".$date_debut_en." 09:00:00' AND leads_liste.date <= '".$date_fin_en."' dans le WHERE et pas dans le "ON" de la jointure de ton LEFT JOIN comme t'as fait pour B2B ?
Message cité 1 fois Message édité par rufo le 28-06-2023 à 08:08:09 --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
bingojm |
|
mechkurt | Sais tu qu'en faisant des LEFT JOIN il essaye de récupérer des valeurs dans leads_liste correspondant à ton ON mais que si il n'y arrive pas tu as quand même une ligne "membres" ?
--------------- D3 |
bingojm |
|
rufo Pas me confondre avec Lycos! | Avec du PHP si tu fais plusieurs requêtes. Tu fais ta première requête, tu stockes le résultat dans un tableau associatif dont la clé sera l'ID du membre. Ainsi, lors de la 2ème requête, tu n'ajouteras chaque enregistrement dans le tableau que si if (!isset($MonTableau[$IDMembre])) --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
ragondin Un pote ragondin c'est cool | C'est pas ça qu'il te faut ?
--------------- Pays et country_code traduits : https://www.iso-country-code.com |
bingojm |
|
ragondin Un pote ragondin c'est cool | Je comprends mais ta demande était "Je cherche désespérément à afficher toutes les équipes avec le nom et prénom de chaque participant."
--------------- Pays et country_code traduits : https://www.iso-country-code.com |
bingojm |
|
rufo Pas me confondre avec Lycos! | Mais non, pas de nouvelle requête. Ton tableau est associatif. Ca veut dire qu'il est de la forme :
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
mechkurt |
Message cité 1 fois Message édité par mechkurt le 29-06-2023 à 08:38:01 --------------- D3 |
bingojm | Un immense merci à tous!
|
rufo Pas me confondre avec Lycos! | Tu fais un ORDER BY RAND() dans ta requête SQL. --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
bingojm | Me revoilà avec une nouvelle question car j'ai du mal avec les tableaux php.
|
mechkurt |
--------------- D3 |
bingojm |
|
mechkurt |
--------------- D3 |
bingojm |
Message édité par bingojm le 06-07-2023 à 15:11:13 |
mechkurt | Ne serait il pas plus simple de trier tes résultats au niveau de ta requête SQL avec un ORDER BY ?
--------------- D3 |
bingojm | Ah c'est sûr que ça serait plus simple! Mais cfr toute la discussion plus haut, on m'a conseillé de faire deux tables différentes et ajouter les données dans un tableau.
|
rufo Pas me confondre avec Lycos! | Ca serait plutôt la fonction uasort() qu'il faut utiliser --------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
bingojm |
|
rufo Pas me confondre avec Lycos! | Non, faut créer une fonction callback qui prend en paramètre 2 valeurs à comparer et la fonction renvoie 0, 1, -1 suivant que la valeur $a est =, >, < à la valeur $b.
--------------- Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta |
![]() Publicité | Posté le ![]() ![]() |
Sujets relatifs | |
---|---|
[PHP/SQL] somme en php de deux colonnes SQL | je connais SQL, mais c'est quoi un site PHP/MYSQL et à quoi sert php? |
Requete LIKE '%%%' comment faire | Requete SQL (PostgreSQL) |
SQL meilleure solution pour une BDD ? | Rétrocompatibilité base de donnée SQL |
GUI SQL pour noob | erreur requete ldap depuis python |
Plus de sujets relatifs à : Requête SQL: Jointure avec correspondance de 2 colonnes |