SQL joindre plusieurs valeurs à partir de la colonne, dans une cellule
Il y a une tonne de jointure sql q déjà, mais je n'ai pas vu ma réponse donc voilà . . . Je suis en train de travailler avec WPDB (base de données WordPress)/EZSql/MySQL 5.0. Essayez d'atteindre la "simple" souhaité la sortie ci-dessous n'en a pas été facile.
Courant de sortie
MemberID MemberName FruitName
-------------- --------------------- --------------
1 Al Apple
1 Al Cherry
De sortie désiré
MemberID MemberName FruitName
----------- -------------- ------------
1 Al Apple, Cherry
MemberID vient de la table a, Nomdumembre vient de tableau a et b, et FruitName vient de la table b. Parce que je suis sortie de tout un tas d'autres colonnes de la table a, j'ai 'gauche a rejoint les deux tables par le biais de cette requête:
$contents = $wpdb->get_results( $wpdb->prepare("SELECT * FROM a LEFT JOIN b ON a.MemberName = b.MemberName"));
Plus tard, j'ai imprimer les colonnes à l'aide de l'écho:
<td><?php echo $content->MemberID ?></td>
<td><?php echo $content->MemberName ?></td>
<td><?php echo $content->FruitName ?></td>
Je suppose que je devrais essayer de requête/jointure entre les deux tables dans une manière différente si il peut être possible de faire preuve de créativité dans l'impression de colonnes. J'ai trouvé ce la discussion ici et modélisé à ma question après elle, mais je ne comprends pas leurs solutions et j'espère qu'il fera quelque chose de plus simple.
Vous devez vous connecter pour publier un commentaire.
GROUPE PAR Nomdumembre et GROUP_CONCAT(FruitName). Par exemple,
Étant donné que vous êtes de l'utilisation de mySQL, je crois que la fonction group_concat fera exactement ce que vous cherchez:
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
Est une façon de boucle et de construire la sortie en PHP (ou autre langage yo utilisez).
Soit concaténer les fruits lors de l'extraction des lignes de db, ou lors de la présentation à l'utilisateur. Id suggèrent les derniers, puisque c'est plus d'un point de vue logique de problème qu'autre chose.
Si vous voulez le faire en SQL, vous devrez créer votre propre (je n'ai pas belive MySQL a construire en, mais j'ai peut-être mal) fonction d'agrégation pour concaténer des chaînes. Il n'est pas si anodin.
Si vous l'extraction d'un seul membre, vous pouvez également le faire en SQL en utilisant une variable, Im uncertaing quant à la nature exacte syntaxe de MySQL, mais pour MSSQL il serait quelque chose comme:
@Adam
Je sais que ça peut être en retard pour répondre mais je viens de tomber sur le même problème, voici donc ma solution pour étendre Mike répondre et de résoudre les multiples d'un même fruit d'occurences:
Donc, fondamentalement, vous avez juste besoin d'ajouter "distinct" dans la fonction GROUP_CONCAT.
J'espère que ça aide.