J'ai deux tables MySQL, $ database1 et $ database2. Les deux ont un champ appelé ID. Je passe le nom d'une ville au fichier en utilisant GET (c'est-à-dire dans l'URL du fichier PHP qui contient ce code).Problèmes d'utilisation de GROUP BY dans MySQL dans une requête qui effectue une jointure sur deux tables
Je peux exécuter cette requête ...
$PlaceName = $_GET['townName'];
$PlaceName = mysql_real_escape_string($PlaceName);
$sql="SELECT * from $database1 LEFT JOIN $database2 on $database1.ID = $database2.ID WHERE PlaceName='$PlaceName'";
$query = mysql_query($sql);
echo '<h1>People who are searching for '.$PlaceName.':</h1>';
echo '<ul>';
while ($row = mysql_fetch_array($query)) {
echo "<li>ID #",$row['ID'],": ",$row['MemberPersonalName']," ",$row['MemberSurname']," -- searching for ",$row['SurnameBeingSearched'],"</li>";
}
echo '</ul>';
... et ça marche et tout va bien. En ce moment, la sortie ressemble à ceci ...
Les gens qui sont à la recherche de Poudlard:
- ID # 137: Hermione Granger - la recherche de Stern
- ID # 137: Hermione Granger - la recherche d'Engelberg
- ID # 503: Harry Potter - la recherche de Kreindler
- ID # 549: Ron Weasley - la recherche de Kreindler
- ID # 1062: Draco Malfoy - la recherche d'Engelberg
- ID # 1155: Ginny Weasley - la recherche de Kreindler
- ID # 1155: Ginny Weasley - la recherche de Streisand
Mais les besoins de sortie peaufiner, et j'ai du mal à écrire mon instruction de requête SQL pour refléter les changements. Ce que je veux vraiment est pour la sortie de ressembler à ceci ...
Les gens qui sont à la recherche de Poudlard:
- Engelberg est recherché par Hermione Granger (id # 137) et Draco Malfoy (id # 1062)
- Kreindler est recherché par Harry Potter (id # 503), Ron Weasley (id # 549), et Ginny Weasley (id # 1155)
- Stern est recherché par Hermione Granger (id # 137)
- Stre Isand est recherché par Ginny Weasley (id # 1155)
En d'autres termes, je dois groupe la production, ainsi que par le champ « SurnameBeingSearched », je dois énumérer les noms des personnes qui font la recherche dans un Format de sortie "X, Y, et Z" (où il sait où ajouter une virgule, si nécessaire, en fonction du nombre de résultats), et j'ai besoin de classer les résultats par le champ 'NameBeingSearched'.
Aide? Merci!
Je pense que le GROUP_CONCAT devrait être utilisé sur people_tbl.name il retournera « hémione Granger, Draco Malfoy » et GROUP BY places_tbl.name – andho
Vous avez raison, j'ai mal lu la sortie désirée. Bonne prise! –