Bonjour.
Je n'ai pas de jointure directe de la table exemplaires sur la table empr. Il faut que je passe par la table pret.
- Dans ma table empr nommée l (pour lecteurs) j'ai :
id_empr
empr_cb
empr_nom
- Dans ma table exemplaires nommée e j'ai :
expl_id
expl_cb
expl_statut
- Dans ma table pret nommée p j'ai :
pret_idempr
pret_idexpl
- Dans ma table notices nommée n j'ai :
tit1
notice_id
Les jointures possibles sont :
- De exemplaires sur notices
expl_notice = notice_id
- De exemplaires sur pret
expl_id = pret_idexpl
- De pret sur empr
id_empr = pret_idempr
La condition que je voudrais remplir porte sur la table exemplaires est expl_statut=12
Au final je veux obtenir une liste avec affichage des colonnes empr_nom, expl_cb, tit1 répondant à la condition expl_statut=12
Cette requête fonctionne mais ne me permet pas d'obtenir empr_nom dans une de mes colonnes parce que je ne sais pas comment faire la jointure.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT e.expl_cb as 'Code barres', e.expl_cote as 'Côte', n.tit1 AS 'Titre' FROM exemplaires e INNER JOIN notices n ON n.notice_id=e.expl_notice WHERE expl_statut=12 ORDER BY e.expl_cote
J'ai essayé cette requête un peu naïvement
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT l.empr_nom as 'Nom', e.expl_cb as 'Code Barres', n.tit1 as 'Titre' FROM notices n, pret p, exemplaire e, empr l, notices n WHERE e.expl_statut=12 AND e.expl_notice = n.notice_id AND e.expl_id = p.pret_idexpl AND l.id_empr = p.pret_idempr
mais la réponse est :
Celle-là aussi mais sans succès1146 - Table 'biblio_prayssas.exemplaire' doesn't exist. biblio_prayssas est le nom de ma base.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT l.empr_nom as 'Nom', e.expl_cb as 'Code Barres', n.tit1 as 'Titre' FROM exemplaires e INNER JOIN notices n ON n.notice_id=e.expl_notice INNER JOIN pret p ON e.expl_id = p.pret_idexp INNER JOIN empr l ON l.id_empr = p.pret_idempr WHERE e.expl_statut=12
Partager