plusieurs jointures avec slick
Pour la jonction entre les deux tables est fait comme
(for {
(computer, company) <- Computers leftJoin Companies on (_.companyId === _.id)
if computer.name.toLowerCase like filter.toLowerCase()
}
Mais dans le cas si rejoindre nécessaire entre plusieurs tables quelle est la bonne façon d'essayer ci-dessous, mais ne fonctionne pas
(for {
(computer, company,suppliers) <- Computers leftJoin Companies on (_.companyId === _.id)
//not right leftjoin Suppliers on (_.suppId === _.id)
if computer.name.toLowerCase like filter.toLowerCase()
}
- l'ordinateur est associé avec le fournisseur
Vous devez vous connecter pour publier un commentaire.
La première rejoindre résultats dans une Requête qui renvoie des n-Uplets. L'un des n-uplet d'éléments a la clé étrangère que vous souhaitez utiliser pour la deuxième jointure. Vous avez besoin pour obtenir ce composant dans la deuxième condition de jointure avant d'obtenir son domaine. Si les Entreprises est la table, qui a le champ suppId il devrait ressembler à ceci:
Je pense que vous voulez ce:
Bien sûr, je fais des hypothèses sur votre modèle. Vous ne savez pas si les fournisseurs sont liés avec des entreprises ou des ordinateurs.
company
est celle qui est définie dans la ligne précédente.company
comme une Requête, c'est une Projection. J'ai testé cette solution 3 fois sur Slick 2.1 :p