tblUserProfile - J'ai une table qui contient toutes les Info Profil (trop de champs)requête pour obtenir la ligne d'une table, une ligne autre au hasard d'un autre
tblMonthlyProfiles - Une autre table qui a juste le ProfileID dans (le idée est que cette table contient 2 profils qui deviennent parfois des profils mensuels (sur sélection)
Maintenant, quand j'ai besoin de montrer des profils mensuels, je fais simplement une sélection à partir de ce tblMonthlyProfiles et je joins avec tblUserProfile pour obtenir toutes les informations valides.
S'il n'y a aucune ligne dans tblMonthlyProfile, la section de profil mensuel n'est pas affichée.
Maintenant, l'exigence est de montrer TOUJOURS les profils mensuels. S'il n'y a pas de lignes dans monthlyProfiles, il doit récupérer 2 profils aléatoires de tblUserProfile. S'il n'y a qu'une seule ligne dans monthlyProfiles, elle ne doit récupérer qu'une seule ligne de tblUserProfile.
Quelle est la meilleure façon de faire tout cela en une seule requête?
Je pensais que quelque chose comme ça
sélectionner top 2 * de tblUserProfile P LEFT OUTER JOIN tblMonthlyProfiles M sur M.profileid = P.profileid Classez par NEWID()
Mais cela me donne toujours 2 lignes aléatoires de tblProfile. Comment puis-je resoudre ceci ?
En y regardant de plus près, je ne pense pas que le 2nd SELECT doive se joindre à la table mensuelle. Mais de toute façon j'espère que tu as l'idée. – LesterDove
mais dans cette requête, où va le hasard? Les tables de profils ont des centaines d'enregistrements et j'ai juste besoin de 2 lignes aléatoires. –
La deuxième requête aurait dû avoir le randomiseur NEWID(). Edité. – LesterDove