[RESOLU] Deux requetes sur une meme base de donnees en meme temps

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Deux requetes sur une meme base de donnees en meme temps

Re: [RESOLU] Deux requetes sur une meme base de donnees en meme temps

par ConceptInterWEB » 13 juin 2016, 02:15

Merci pour la réponse.

Entre temps j'ai trouvé, un INNER JOIN doit être vrai pour retourner un résultat, donc le champ ne doit pas être NULL si je veux que le INNER JOIN fonctionne je me trompe ?
J'ai utilisé un RIGHT JOIN à la place, donc je recois un résultat peu importe si j'ai un co-auteur ou pas.

Sylvain

Re: Deux requetes sur une meme base de donnees en meme temps

par moogli » 09 juin 2016, 12:34

salut,

sans la structure de la table c'est difficile de d'être certain que je dis.
Mais d'après ton message tu as une colonne "id_coauteur " ?
si oui il te faut une autre jointure sur membres pour générer cela
SELECT l.*, m.nom, m.prenom auteurNom, m.email  auteurMail, c.nom_categorie ,m2.prenom coauteurNom, m2.email coauteurMail
               FROM livres l
               INNER JOIN membres m using(id_auteur)
               INNER JOIN membres m2 ON l.id_coauteur = m.id_auteur
               INNER JOIN categories c using(id_categorie)
               WHERE l.isbn = 'xxx'
Si cette réponse est la bonne je t'invite à modifier ton modèle de données.
tu dois avoir une table de "liaison" entre livres et auteurs.
Pourquoi ?
Parce que cela permet de gérer simplement le nombre d'auteur une seule fois et sans problème.
cette table (disont auteurs) contient juste les clef primaire des deux tables (isbn et id_auteur).
Pour alimenter la liste des auteur un select "relativement simple"
select nom, prenom, email from membres where id_auteur in ( select id_auteur from auteurs where isbn='xxxx');
Par contre tu n'auras pas tout en une requête.
Au passage la table membre avec un id_auteur me fait dire que cette table est mal nommé ;)

@+

Deux requetes sur une meme base de donnees en meme temps

par ConceptInterWEB » 20 mai 2016, 04:10

Bonjour à tous,

Je suis la conception d'un site d'une maison d'édition.

Les livres sont écrits pas des auteurs, et parfois ils ont un co-auteur mais pas toujours.

Comment je fais pour aller cherche le nom et prenom des deux auteurs si tel est le cas.

Les livres sont classes par ISBN comme clé primaire.

Les auteurs ont un id_auteur unique propre à eux, le nom est le prenom sont dans la base de données membres.

Voici ma requête actuelle que j'aimerais mettre à jour. Aussi il est à noté que lorsque un auteur n'a pas de co-auteur, ce dernier est NULL dans la base de données.

Code : Tout sélectionner

$req_livre = "SELECT l.*, m.nom, m.prenom, m.email , c.nom_categorie FROM livres l INNER JOIN membres m ON l.id_auteur = m.id_auteur INNER JOIN categories c ON l.id_categorie = c.id_categorie WHERE l.isbn = '" . $isbn . "'";
Si vous croyez que ma requête mérite d'être optimisé, n'hésitez pas à m'en faire part.

Merci à tous pour votre aide.
Sylvain