J'ai un certain nombre de tables auxquelles j'essaie d'accéder dans CodeIgniter, et l'une d'entre elles est essentiellement une collection de clés étrangères des autres tables, dont la plupart ne sont que deux champs: un identifiant unique et un nom. La table "campagnes", appelons-la, extrait les données des autres tables sous la forme de ces tables (car les noms ne sont pas forcément uniques). Maintenant, ce que je veux faire est d'afficher les données "campagnes" sous une forme lisible par l'homme, ce qui signifie, en montrant les noms étrangers, pas les identifiants. Je pense que c'est ce qu'on appelle une «participation», mais je ne suis pas certain à 100% de cela. J'ai vérifié la page de MySql et ils ont dit que ce n'était pas vraiment ce à quoi servaient les clés étrangères, mais je pensais que vous aviez besoin de clés étrangères pour une jointure, donc je suis vraiment plus confus maintenant. Est-ce que j'utilise vraiment des jointures et des clés étrangères pour cela? Merci d'avance.Comment sélectionner une relation un-à-plusieurs dans CodeIgniter?
0
A
Répondre
2
La clé étrangère fournit un lien vers un autre enregistrement de la même table ou d'une autre table (généralement la dernière). Une jointure utilise des données communes dans deux tables (parfois la même table) pour fournir un lien entre elles.
Si vous avez deux tables que vous souhaitez joindre et que le seul facteur commun entre ces deux tables est dans une troisième table (celle avec toutes les clés étrangères), vous devrez effectuer 2 jointures.
Exemple
SELECT *.table1, *.table2 FROM table1
LEFT JOIN foreign_key_table ON foreign_key_table.id1 = table1.id
LEFT JOIN table2 ON foreign_key_table.id2 = table2.id
WHERE.....
En Codeignter:
$this->db->select('*.table1, *.table2');
$this->db->from('table1');
$this->db->join('foreign_key_table', 'foreign_key_table.id1 = table1.id');
$this->db->join('table2', 'foreign_key_table.id2 = table2.id');
$this->db->where('...');
Vous pouvez trouver toutes les informations dont vous avez besoin ici - http://codeigniter.com/user_guide/database/active_record.html
Hope this helps.
Questions connexes
- 1. Codeigniter: Une meilleure façon de sélectionner db?
- 2. Comment sélectionner les entrées de cette relation?
- 3. Sélectionner et compter avec une relation de tableau?
- 4. sqlalchemy Sélectionner le type de Relation
- 5. comment générer une relation many-to-many-relation dans web2py?
- 6. comment sélectionner une valeur dans une liste?
- 7. Comment sélectionner une option et la sélectionner?
- 8. pagination codeigniter pour une requête
- 9. Rails Has Une relation
- 10. Comment trouver une relation polymorphe
- 11. comment sélectionner une ligne dans un Jtextarea?
- 12. comment sélectionner une requête paramétrée dans asp.net
- 13. TSQL, sélectionner des valeurs d'une relation plusieurs-à-plusieurs
- 14. Comment configurer une relation dans cakephp pour une relation récursive one-to-one?
- 15. Comment puis-je sélectionner à partir de plusieurs tables dans CodeIgniter
- 16. Comment définir Favicon dans Codeigniter
- 17. Comment modéliser une façon unique à une relation dans Django
- 18. Comment ajouter une relation dans une Doctrine Migration
- 19. Comment exécuter une suppression groupée avec une relation dans EJB3
- 20. une relation difficile avec Django
- 21. Sélectionner une requête dans Linq
- 22. comment rogner l'image dans codeigniter?
- 23. Comment sélectionner une colonne calculée
- 24. comment sélectionner une ligne particulière?
- 25. SQL Comment puis-je interroger une relation plusieurs à plusieurs
- 26. Supprimer une relation?
- 27. Comment interroger une base de données de la vue - CodeIgniter
- 28. Comment modéliser une relation symétrique avec django?
- 29. Comment tamponner une image avec CodeIgniter?
- 30. Comment sélectionner une cellule avec plusieurs valeurs dans une colonne?
Donc, vous dites essentiellement que la jointure elle-même devrait prendre soin de lier l'ID de la clé étrangère avec le nom et afficher le contenu lisible par l'utilisateur automatiquement? Alors ok. Je suppose que je dois juste comprendre comment obtenir CodeIgniter pour que ça marche pour moi. C'est tellement plus difficile que Rails. Merci! – StormShadow