ajout d'une valeur dans résultat d'une requête d'une autre table

ajout d'une valeur dans résultat d'une requête d'une autre table - SQL/NoSQL - Programmation

Marsh Posté le 05-06-2017 à 11:59:49    

bonjour ,
je vais essayer d'être le plus clair possible dans ma demande

 

j'ai une requête SQL qui me ramène une liste de colonne à afficher depuis une table

 

SELECT vd.id, 'EPISODE' AS videoType, vd.title, vd.title_original AS originalTitle, vd.title_sort AS sortTitle, vd.publication_year AS videoYear, vd.release_date as releaseDate, null AS seriesId, vd.season_id AS seasonId, null AS season, vd.episode AS episode , vd.watched AS watched, vd.create_timestamp as createTimestamp , vd.plot, vd.status FROM videodata vd WHERE vd.episode>-1

 


 id videoType title                  originalTitle         sortTitle          videoYear releaseDate seriesId seasonId season episode watched createTimestamp   plot              status
550 EPISODE La danse des dragons The Dance of Dragons danse des dragons -1       2015-06-07              1                   9       1          2016-03-27 13:22 Acculé dans... DONE
551 EPISODE Le fils de la harpie The Sons Of The Harpy fils de la harpie   -1       2015-05-03              1                   4       1          2016-03-27 13:22 Les Moineau... DONE

 

je souhaiterais ajouter une colonne (à la réponse de la requête et pas à la table) qui est issue d'une double jointure

 

select (select vd.title from videodata vd where (vd.id = mv.videodata_id and episode > -1)  ) as Title,
(select vd.id from videodata vd where (vd.id = mv.videodata_id and episode > -1) ) as VD_id,
(select l.base_directory from library l where l.id = sd.library_id) as library_base from mediafile_videodata mv
join stage_file sf on mv.mediafile_id = sf.mediafile_id
left join stage_directory sd on sd.id = sf.directory_id

 

# Title                       VD_id  library_base
La danse des dragons         550  T: /video/Film
Le fils de la harpie         551  T: /video/Film

 


pour obtenir :

 

id   videoType title                  originalTitle         sortTitle          videoYear releaseDate seriesId seasonId season episode watched createTimestamp   plot              status  library_base
550 EPISODE La danse des dragons The Dance of Dragons danse des dragons -1       2015-06-07              1                   9       1          2016-03-27 13:22 Acculé dans... DONE  T: /video/Film
551 EPISODE Le fils de la harpie The Sons Of The Harpy fils de la harpie   -1       2015-05-03              1                   4       1          2016-03-27 13:22 Les Moineau... DONE  T: /video/Film

 

bien entendu je ne souhaites ajouter que la colonne library_base à la 1ère requête

 


sauf à dupliquer pour toutes les colonnes que je veux afficher et qui sont dans la table videodata ( vd.id, 'EPISODE' AS videoType, vd.title, vd.title_original AS originalTitle, ............)
avec à chaque colonne un nouveau select
(select vd.title from videodata vd where (vd.id = mv.videodata_id and episode > -1)  ) as Title,

 

je n'ai pas trouvé comment faire pour simplifier

 

merci de votre aide

 

NB:  le résultat de la requête est passé ensuite à .json qui va transmettre le résultat , je n'ai pas la possibilité d'ajouter du code - php ou autre au milieun ni d'ajouter une table intermédiaire (ce qui serait le plus simple) , d'ou la recherche par le SQL seul

 



Message édité par jluc2808 le 05-06-2017 à 12:06:02
Reply

Marsh Posté le 05-06-2017 à 11:59:49   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed