3 votes

Obtenir des valeurs dans une colonne du tableau A à l'aide d'un fichier CSV à partir d'une colonne B d'un autre tableau

J'ai deux tableaux comme suit :

Table Items
+--------------------+
| id | item          |
+----+---------------+
| 1  | Table         |
+----+---------------+
| 2  | couch         |
+----+---------------+
| 3  | Bed           |
+----+---------------+
| 4  | Chair         |
+----+---------------+
| 5  | Desk          |
+----+---------------+

Table Acme
+--------------------+--------+
| id | items         | Client |
+----+---------------+--------+
| 1  | 1,3,5         | S45-56 |
+----+---------------+--------+

Ce dont j'ai besoin, c'est d'utiliser le fichier CSV de la table Acme pour sélectionner des éléments dans la table Articles.

J'ai essayé d'utiliser la requête suivante, mais je n'obtiens que la première valeur de l'arbre.

SELECT * FROM Items WHERE id IN (SELECT items FROM Acme WHERE client ='S45-56')

Une idée ?

3voto

sticky bit Points 23565

Vous pouvez utiliser find_in_set() pour vérifier si une valeur se trouve dans une liste séparée par des virgules.

SELECT i.*
       FROM items i
            INNER JOIN acme a
                       ON find_in_set(i.id, a.items)
       WHERE a.client = 'S45-56';

Mais il est préférable de corriger votre schéma et de ne pas utiliser de listes séparées par des virgules, mais plutôt plusieurs lignes dans un tableau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X