Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sous-requête renvoyant plus d'une ligne

Je ne pense pas qu'il soit possible de renvoyer un tableau dans une ligne, mais ce que vous pouvez faire est d'utiliser group_concat pour joindre les valeurs dans une chaîne que vous pourrez ensuite exploser plus tard :

SELECT `customers`.`First Name`, `customers`.`Last Name`,
GROUP_CONCAT(`items`.`Product Name` SEPARATOR '$^$') AS `Products` 
FROM customers 
JOIN items 
ON `customers`.`Customer No` = `items`.`Customer No` 
WHERE `customers`.`Customer No` = 6 
GROUP BY `Customer No`

$products=explode("$^$",$result[0]['products']);

Le séparateur par défaut pour group_concat est , ce qui peut être assez dangereux lors de l'utilisation d'exploser, nous utilisons donc SEPARATOR '$^$' pour ajouter un tas de caractères aléatoires qui ne sont pas susceptibles d'apparaître à la place.