J'ai un indextable qui contient un content_id et un type colomn. (par exemple content_id = 1, type = audio. Content_id = 1, type = vidéo) Serait-il possible d'obtenir les bonnes données basées sur content_id à partir des bonnes tables (tables: contentvideo, contentaudio)?MySQL Multiple select
Répondre
Avez-vous essayé CASE, ou SI?
J'ai lu dans le MysSQL sur le lien que vous avez donné. Le concept est clair, les exemples sont pauvres, mais j'ai fait quelques recherches et j'ai trouvé exactement ce dont j'avais besoin en fonction de votre geste CASE. Merci! Pour d'autres personnes qui pourraient trébucher sur la même chose. Voici le lien dont j'avais besoin (un SELECT basé sur un switch CASE) http://forums.mysql.com/read.php?10,245909,245990#msg-245990 –
Eh bien, pas de problème! ;) –
Je suppose que vous souhaitez récupérer le contenu via une seule instruction select? Si la mise en page de vos tables de contenu est exactement le même que vous pouvez utiliser UNION:
SELECT ca.* FROM contentaudio ca, indextable it
WHERE ca.content_id = it.content_id
AND it.content_type = 'audio'
UNION
SELECT cv.* FROM contentvideo cv, indextable it
WHERE cv.content_id = it.content_id
AND it.content_type = 'video'
ORDER BY content_id /* or whatever */
Notez que si content_id
n'est pas unique à travers tous vos content
tables, vous pouvez obtenir plusieurs enregistrements (de différents types) pour la même content_id
. Notez également que si vous sélectionnez un enregistrement particulier basé sur une clé indextable
, vous devrez l'ajouter à chaque partie de l'union.
Si vos content
tables ont différentes mises en page, vous pouvez utiliser un OUTER JOIN au lieu et récupérer vos différents types de contenu dans le cadre d'un enregistrement (les manquants seront retournés comme NULLs):
SELECT * FROM indextable it
LEFT OUTER JOIN contentaudio ca ON it.content_id = ca.content_id
LEFT OUTER JOIN contentvideo cv ON it.content_id = cv.content_id
WHERE it.some_key = ?
Notez que content_type
n'est pas impliqué dans ce cas (vous n'en avez pas non plus besoin pour UNION select).
- 1. struts2 balise select multiple
- 2. MySQL Groupe COUNT multiple
- 3. mysql: problème de jointure multiple
- 4. mysql insert select conundrum
- 5. MYSQL INSERT SELECT problème
- 6. mysql fake select
- 7. Instruction SELECT conditionnelle MySQL
- 8. Conditionnel SELECT MySQL
- 9. Mysql Date SELECT
- 10. Mysql, NOT EXISTS, SELECT
- 11. MySQL: SELECT d'un autre serveur
- 12. Django: en utilisant <select multiple> et POST
- 13. Équivalent d'une boîte SELECT multiple HTML dans wxPython
- 14. MYSQL MyISAM Comment inscrire 2 instruction select + select count
- 15. Mysql Multiple Concat Inner Join, ne donner qu'un seul nom
- 16. MySQL SELECT plus fréquentes par groupe
- 17. MySQL Select Instruction DISTINCT pour plusieurs colonnes
- 18. Liste Python vs MySQL Select performance
- 19. mySQL: select * en combinaison avec UNIX_TIMESTAMP
- 20. Mysql SELECT requête imbriquée, très compliqué?
- 21. MySQL - Requête UPDATE basée sur SELECT Query
- 22. CREATE TABLE COMME SELECT tuer MySQL
- 23. MySQL INSERT INTO ... SELECT lance erreur 1064
- 24. Générer un champ dans MySQL SELECT
- 25. MySQL SELECT avec une condition aide
- 26. mysql SELECT imbriquée UPDATE de même table
- 27. Comment utiliser XPATH dans MySQL select?
- 28. MySQL Select Statement - GROUP BY/Unique
- 29. Python MySQL - SELECT fonctionne mais pas DELETE?
- 30. requête MySQL (mélange d'un insert avec select)
pouvez-vous clarifier exactement quels tableaux vous avez et quels champs ils ont? –
J'ai ajouté la balise 'polymorphic-associations', parce que c'est ce que vous faites. Suivez l'étiquette pour voir d'autres questions liées à cette conception de base de données. –