SELECT - SQL/NoSQL - Programmation
Marsh Posté le 03-06-2006 à 07:37:31
Tu dois faire une jointure 
 
| Code : 
 | 
 
 
dans ce sens ou dans l'autre 
 
| Code : 
 | 
 
 
ou avec "where" 
 
| Code : 
 | 
Marsh Posté le 04-06-2006 à 23:14:37
ReplyMarsh Posté le 04-06-2006 à 23:22:28
Si j'ai bien compris, c'est un code dans ce genre qu'il te faut : 
 
SELECT artistes.NOM FROM cd 
LEFT JOIN artistes ON artistes.ID = cd.artiste_id 
WHERE TITRE = "...";
Marsh Posté le 05-06-2006 à 14:21:16
| radioh a écrit : merci !   | 
 
 
 
et bien tu fais plusieurs jointures   
 
Marsh Posté le 05-06-2006 à 14:47:31
ReplyMarsh Posté le 05-06-2006 à 17:50:59
super merci ! ca marche ! g un autre problème ! un gros ! 
 
j'aimerais updater plusieurs tables à la fois :  
 
create table artiste ( 
 id_artiste serial PRIMARY KEY, 
 nom_artiste varchar(50) UNIQUE NOT NULL 
); 
 
create table label ( 
 id_label serial PRIMARY KEY, 
 nom_label varchar(50) UNIQUE NOT NULL 
); 
 
create table cd ( 
 id_cd serial PRIMARY KEY, 
 titre_cd varchar(50) NOT NULL, 
 artiste_id INTEGER NOT NULL, 
 label_id INTEGER NOT NULL, 
 FOREIGN KEY(artiste_id) references artiste(id_artiste), 
 FOREIGN KEY(label_id) references label(id_label) 
); 
 
Je veux pouvoir updater la table artistes ET label selon le "id" de la table CD qui est passée en parametre dans l'url ? vous me comprenez ? 
 
 
Imaginons :  
 
                              TABLE CD 
------------------------------------------------------------------- 
id_cd         artiste_id           label_id            titre_cd 
------------------------------------------------------------------- 
  1                 2                     1                Ok Computer 
  2                 1                     2                Neon Golden      
 
         
       TABLE ARTISTE 
-------------------------------- 
id_artiste        nom_artiste 
------------------------------- 
  1                 The Not  
  2                 Radiohead     
 
 
       TABLE LABEL 
-------------------------------- 
id_label           nom_label 
------------------------------- 
  1                  Parlophone 
  2                  Capitol Records   
 
 
Now je veux modifier le nom de l'artiste dans la TABLE ARTISTE et le nom du label dans la TABLE LABEL, par rapport à l'entrée numéro 2 de la TABLE CD. Vous comprenez ? 
 
j'ai essayé ceci :  
 
UPDATE artiste SET nom_artiste = $nom_artiste WHERE id_artiste IN (SELECT artiste_id FROM cd WHERE id_cd = '$id'); mais ca ne marche que pour UNE SEULE table ! 
 
P.S $id est passé en parametre dans l'url... 
  
Marsh Posté le 05-06-2006 à 19:24:30
| moi23372 a écrit : OU  | 
 
 
déjà dit  
 
 
 
| radioh a écrit :   | 
 
 
tu ne peux updater qu'une table à la fois
Marsh Posté le 03-06-2006 à 01:19:27
Salut tout le monde,
bon voilà, il y a quelque chose que je n'arrive pas à résoudre... je m'explique :
J'ai créé deux tables : Une table "CD" et une table "ARTISTES".... je les ai créées comme ceci :
create table artistes (
id serial PRIMARY KEY,
nom varchar(50) UNIQUE NOT NULL
);
create table cd (
id serial PRIMARY KEY,
titre varchar(50) NOT NULL,
artiste_id INTEGER NOT NULL,
FOREIGN KEY(artiste_id) references artistes(id),
);
Donc dans ma table CD, j'ai un pointeur qui part du champ "artiste_id" et qui pointe sur le "id" de la table "artistes".
Ma question est la suivante : Comment je fais pour chercher une ligne de ma table CD pour que j'obtienne le titre et le NOM de l'artiste et non pas son id...
merci bcp!