J'ai besoin de votre aide pour construire une déclaration SQL Je ne peux pas m'en sortir.sql rejoindre dans rejoindre?
Dans une base de données, j'ai quatre tables - fichiers, dossiers, dossiers_fichiers et liens.
J'ai beaucoup de fichiers. L'un d'entre eux s'appelle "myFile.txt".
J'ai beaucoup de dossiers. "myFile.txt" est dans certains d'entre eux. Le premier dossier dans lequel il apparaît s'appelle "firstFolder".
J'ai de nombreux liens vers de nombreux dossiers. Le premier lien vers "firstFolder" s'appelle "firstLink".
La structure de données pour l'exemple serait:
// files
Id: 10
Name: "myFile.txt"
// folders
Id: 20
Name: "firstFolder"
// folder_files (join table)
Id: 30
Folder_Id: 20 (meaning "firstFolder")
File_Id: 1 (meaning "myFile.txt")
// links
Id: 40
Name: "firstLink"
Folder_Id: 20 (meaning "firstFolder")
PREMIERE QUESTION: Comment puis-je obtenir le record de « monFichier.txt » et le nom et l'identifiant de « FirstLink » (premier lien), interroger sur le fichier Id = 10, basé sur l'ID le plus bas du dossier et le lien?
DEUXIÈME QUESTION: Comment puis-je obtenir l'enregistrement de "myFile.txt" ET le nom et l'ID de "firstLink" (le premier lien), interroger tous les fichiers, en fonction de l'ID le plus bas du dossier et le lien ? Autrement dit, comment puis-je obtenir le premier lien vers le premier dossier contenant "myFile.txt"?
résultant dans un dossier qui ressemble à:
Id: 10
Name: "myFile.txt"
LinkId: 40
LinkName: "firstLink"
Merci!
Par «premier», voulez-vous dire avec l'ID le plus bas? – Wrikken
J'ai ajouté la balise 'most-n-per-group'. Essayez de cliquer sur cette étiquette et vous verrez de nombreux autres cas du problème équivalent, avec des solutions. Essayez de lire certaines d'entre elles, puis revenez et éditez votre question avec ce que vous avez essayé (il est toujours préférable de faire vos devoirs vous-même). Désolé, je devais cannibaliser votre tag 'subselect' car il y a une limite de cinq tags. Mais vous n'avez pas nécessairement besoin d'une sous-sélection pour résoudre ce problème. –
@Wrikken - oui, le plus bas Id. @bill - merci pour l'édition, je suis assez novice à SQL, que je ne vois pas vraiment comment le plus grand-n-par-groupe se rapporte? Je pense que je fais juste des jointures ...? J'ai creusé autour de ce forum et du web pendant une heure avant de poster. – user110218