Requête SQL avec 2 tables différentes
Fermé
Taloo
-
21 nov. 2011 à 12:42
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 22 nov. 2011 à 11:12
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 22 nov. 2011 à 11:12
A voir également:
- Requête SQL avec 2 tables différentes
- Tables des matières word - Guide
- Whatsapp avec 2 cartes sim - Guide
- 2 ecran pc - Guide
- Word numéro de page 1/2 - Guide
- Coupler 2 carte graphique différente - Forum Carte graphique
2 réponses
vordano
Messages postés
1685
Date d'inscription
mardi 12 juillet 2011
Statut
Membre
Dernière intervention
20 juillet 2012
316
21 nov. 2011 à 12:51
21 nov. 2011 à 12:51
update table1, table 2
set champ = "truc"
where table1.id = table2.id
and table1="condition"
and table1="chose"
ca devrais être un truc dans ce genre là
tu peux chercher sur google: update sur plusieurs tables
set champ = "truc"
where table1.id = table2.id
and table1="condition"
and table1="chose"
ca devrais être un truc dans ce genre là
tu peux chercher sur google: update sur plusieurs tables
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
21 nov. 2011 à 13:59
21 nov. 2011 à 13:59
Bonjour,
Tout dépend de la façon dont un produit est relié à une catégorie.
J'imagine que la table jos_listings a un champ « cats » qui donne la catégorie...
Dans ce cas, c'est très simple :
UPDATE 'jos_listings' SET 'keywords'='berlines' WHERE cats = 'Voitures'
Dans cats, c'est peut-être un id numérique... À toi de voir.
Xavier
Tout dépend de la façon dont un produit est relié à une catégorie.
J'imagine que la table jos_listings a un champ « cats » qui donne la catégorie...
Dans ce cas, c'est très simple :
UPDATE 'jos_listings' SET 'keywords'='berlines' WHERE cats = 'Voitures'
Dans cats, c'est peut-être un id numérique... À toi de voir.
Xavier
Bonjour et merci d'avoir répondu aussi vite ! ;)
J'ai donc essayé ceci :
UPDATE jos_listings SET keywords='Berlines' WHERE cats = 'Voitures'
mais le résultat est :
#1054 - Unknown column 'cats' in 'where clause'
J'ai également essayé ceci:
UPDATE jos_listings, jos_cats
SET keywords='Berlines'
WHERE jos_listings.id = jos_cats.id
AND jos_cats='Voitures' (ici j'ai essayé aussi avec jos_cats='cat_id= 92' où l'id 92 correspond à la catégorie souhaitée, mais ça n'a rien changé)
mais le résultat est:
#1052 - Column 'metakey' in field list is ambiguous
J'imagine qu'il faudrait préciser que pour la partie SET keywords='Berlines' il faudrait préciser qu'il s'agit de la table " jos_listing " puisqu'il dit que cette ligne est ambiguë... ?! :(
Merci encore
J'ai donc essayé ceci :
UPDATE jos_listings SET keywords='Berlines' WHERE cats = 'Voitures'
mais le résultat est :
#1054 - Unknown column 'cats' in 'where clause'
J'ai également essayé ceci:
UPDATE jos_listings, jos_cats
SET keywords='Berlines'
WHERE jos_listings.id = jos_cats.id
AND jos_cats='Voitures' (ici j'ai essayé aussi avec jos_cats='cat_id= 92' où l'id 92 correspond à la catégorie souhaitée, mais ça n'a rien changé)
mais le résultat est:
#1052 - Column 'metakey' in field list is ambiguous
J'imagine qu'il faudrait préciser que pour la partie SET keywords='Berlines' il faudrait préciser qu'il s'agit de la table " jos_listing " puisqu'il dit que cette ligne est ambiguë... ?! :(
Merci encore
Après avoir fait quelques essais, j'ai eu un début de résultat :
UPDATE
jos_listings, jos_cats
SET
jos_listings.keywords= 'test'
WHERE
jos_cats.cat_id=92
Après vérification les modifications ont bien été faites dans le champ keyword, mais hélas... dans TOUTES les catégories et non pas UNIQUEMENT celles dont l'id=92
:(
UPDATE
jos_listings, jos_cats
SET
jos_listings.keywords= 'test'
WHERE
jos_cats.cat_id=92
Après vérification les modifications ont bien été faites dans le champ keyword, mais hélas... dans TOUTES les catégories et non pas UNIQUEMENT celles dont l'id=92
:(
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
22 nov. 2011 à 09:49
22 nov. 2011 à 09:49
Bonjour,
Tu te tords les neurones pour rien :)
J'avais utilisé 'cats' parce que je ne connais pas le nom de tes colonnes !
Mais à te lire, il s'agit de cat_id.
Du coup, la requête est simplement :
UPDATE 'jos_listings' SET 'keywords'='berlines' WHERE cat_id = 92
Xavier
Tu te tords les neurones pour rien :)
J'avais utilisé 'cats' parce que je ne connais pas le nom de tes colonnes !
Mais à te lire, il s'agit de cat_id.
Du coup, la requête est simplement :
UPDATE 'jos_listings' SET 'keywords'='berlines' WHERE cat_id = 92
Xavier
Salut Xavier et merci pour ton aide !
J'ai essayé mais il me renvoie la réponse :
#1054 - Unknown column 'cat_id' in 'where clause'
Apparemment c'est parce qu'il n'a pas été chercher dans la bonne table le champ " cat_id "
Je vais essayer de mieux expliquer ma structure de la base de données
j'avais essayé de simplifier un peu en résumant mais je vais essayer de te donner un max d'infos pour pouvoir ne rien laisser échapper
Déjà c'est une base de donnée gérée par le composant Mosets Tree qui fonctionne avec Joomla
Les tables qu'il utilise sont les suivantes :
jos_mt_archived_log
jos_mt_archived_reviews
jos_mt_archived_users
jos_mt_cats
jos_mt_cfvalues
jos_mt_cfvalues_att
jos_mt_cl
jos_mt_claims
jos_mt_clone_owners
jos_mt_config
jos_mt_configgroup
jos_mt_customfields
jos_mt_favourites
jos_mt_fieldtypes
jos_mt_fieldtypes_att
jos_mt_fieldtypes_info
jos_mt_images
jos_mt_linkcheck
jos_mt_links
jos_mt_log
jos_mt_relcats
jos_mt_reports
jos_mt_reviews
jos_mt_searchlog
jos_mt_templates
Je veux faire une requête avec les 2 tables qui stockent apparemment les catégories, et les listings :
jos_mt_cats -> qui stock les catégories (j'avais simplifié le nom plus haut)
Qui à les champs suivants :
cat_id
cat_name
cat_description
(...)
jos_mt_links -> qui stock les listings (j'avais nommé jos_listings plus haut pour simplifier)
Qui a les champs suivants :
link_id
link_name
link_desc
link_keywords
user_id
(...)
j'ai donc des centaines de catégories pour des milliers de listings dans ma base..
Et j'aimerais modifier d'un coup tous les champs " link_keywords " de la table " jos_mt_links " en fonction de la catégorie à laquelle les listings appartiennent.
Par exemple je voudrais attribuer la valeur " TEST " dans le champ " link_keywords " de la table " jos_mt_links" UNIQUEMENT pour les listings qui appartiennent à la catégorie " Voitures " ( champ " cat_id=81 dans la table jos_mt_cats )
Un des soucis est que je ne trouve pas ce qui fait le lien entre les deux tables jos_mt_cats et jos_mt_links (enfin je crois qu'il devrait y avoir un lien non ?)
Comme ce n'est pas moi qui ai personnellement développé la base de donnée, j'essaie de tout décortiquer comme je peux...
C'est peu être dans une autre table mais je ne voit pas où dans ce cas..
Actuellement je suis un petit peu découragé et j'essaie d'exporter ma base de données au format CSV MS Excel, de corriger ce que je veux avec la fonction " remplacer " et les filtres, puis de ré-importer le tout dans la base de données sql...
Bonne journée et merci encore
J'ai essayé mais il me renvoie la réponse :
#1054 - Unknown column 'cat_id' in 'where clause'
Apparemment c'est parce qu'il n'a pas été chercher dans la bonne table le champ " cat_id "
Je vais essayer de mieux expliquer ma structure de la base de données
j'avais essayé de simplifier un peu en résumant mais je vais essayer de te donner un max d'infos pour pouvoir ne rien laisser échapper
Déjà c'est une base de donnée gérée par le composant Mosets Tree qui fonctionne avec Joomla
Les tables qu'il utilise sont les suivantes :
jos_mt_archived_log
jos_mt_archived_reviews
jos_mt_archived_users
jos_mt_cats
jos_mt_cfvalues
jos_mt_cfvalues_att
jos_mt_cl
jos_mt_claims
jos_mt_clone_owners
jos_mt_config
jos_mt_configgroup
jos_mt_customfields
jos_mt_favourites
jos_mt_fieldtypes
jos_mt_fieldtypes_att
jos_mt_fieldtypes_info
jos_mt_images
jos_mt_linkcheck
jos_mt_links
jos_mt_log
jos_mt_relcats
jos_mt_reports
jos_mt_reviews
jos_mt_searchlog
jos_mt_templates
Je veux faire une requête avec les 2 tables qui stockent apparemment les catégories, et les listings :
jos_mt_cats -> qui stock les catégories (j'avais simplifié le nom plus haut)
Qui à les champs suivants :
cat_id
cat_name
cat_description
(...)
jos_mt_links -> qui stock les listings (j'avais nommé jos_listings plus haut pour simplifier)
Qui a les champs suivants :
link_id
link_name
link_desc
link_keywords
user_id
(...)
j'ai donc des centaines de catégories pour des milliers de listings dans ma base..
Et j'aimerais modifier d'un coup tous les champs " link_keywords " de la table " jos_mt_links " en fonction de la catégorie à laquelle les listings appartiennent.
Par exemple je voudrais attribuer la valeur " TEST " dans le champ " link_keywords " de la table " jos_mt_links" UNIQUEMENT pour les listings qui appartiennent à la catégorie " Voitures " ( champ " cat_id=81 dans la table jos_mt_cats )
Un des soucis est que je ne trouve pas ce qui fait le lien entre les deux tables jos_mt_cats et jos_mt_links (enfin je crois qu'il devrait y avoir un lien non ?)
Comme ce n'est pas moi qui ai personnellement développé la base de donnée, j'essaie de tout décortiquer comme je peux...
C'est peu être dans une autre table mais je ne voit pas où dans ce cas..
Actuellement je suis un petit peu découragé et j'essaie d'exporter ma base de données au format CSV MS Excel, de corriger ce que je veux avec la fonction " remplacer " et les filtres, puis de ré-importer le tout dans la base de données sql...
Bonne journée et merci encore
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
22 nov. 2011 à 11:12
22 nov. 2011 à 11:12
Ah ok, je n'avais pas bien compris...
En effet, tout le problème est là :
« Un des soucis est que je ne trouve pas ce qui fait le lien entre les deux tables jos_mt_cats et jos_mt_links (enfin je crois qu'il devrait y avoir un lien non ?) »
Oui il devrait y avoir un lien...
En effet, tout le problème est là :
« Un des soucis est que je ne trouve pas ce qui fait le lien entre les deux tables jos_mt_cats et jos_mt_links (enfin je crois qu'il devrait y avoir un lien non ?) »
Oui il devrait y avoir un lien...