Je vais essayer d'expliquer mon problème. J'ai deux tables. Dans le premier, chaque enregistrement est identifié par un code INT unique (compteur). Dans la seconde, le code de la première table est l'un des champs (et peut être répété dans divers enregistrements).MySQL Sélectionnez le jeu d'enregistrements WHERE IN
Je veux faire un SELECT CODE
dans la deuxième table, sur la base WHERE
paramètres, sachant que je vais obtenir comme résultat un jeu d'enregistrements avec éventuellement répétée CODES
, et utiliser ce jeu d'enregistrements pour un autre SELECT
dans la première table, WHERE CODE IN
le jeu d'enregistrements ci-dessus (de la deuxième table).
Est-ce possible? Et si oui, comment faire cela?
Habituellement, si j'utilise la clause WHERE IN
, le tableau peut contenir des valeurs répétées comme WHERE
code IN
"3,4,5,6,3,4,2" ... non? La différence ici est que je veux utiliser un jeu d'enregistrements précédemment sélectionné à la place du tableau.
en savoir plus sur Joins.http: //blog.codinghorror.com/a-visual-explanation-of-sql-joins/; Comprendre également la cardinalité. Ce que vous avez est une relation de un à plusieurs A -> où A.Code = B.A_CODE et B.A_Code peuvent être répétés (ainsi est la nature d'une clé étrangère) Il semble que vous ne vouliez afficher que les valeurs de A Table Vous pouvez le faire en utilisant une sous-requête exists et une sous-requête coorlated ou vous pouvez utiliser une jointure externe et un groupe by ou distinct. – xQbert