Bonjour à tous !
J'ai une table qui contient des utilisateurs mais je souhaiterais renvoyer tout de même la ligne si l'utilisateur rentré n'apparait pas dans la table. Cela est - il possible ?
merci d'avance
Bonjour à tous !
J'ai une table qui contient des utilisateurs mais je souhaiterais renvoyer tout de même la ligne si l'utilisateur rentré n'apparait pas dans la table. Cela est - il possible ?
merci d'avance
je n'ai peut-être pas bien compris.. mais tu désires faire une requête qui te renvoie une ligne pour un nom d'utilisateur donné et tu veux aussi que si l'utilisateur n'est pas dans ta table, qu'il apparaisse.. ? ça ne me parait pas possible: dans une requête tu auras comme résultat seulement ce qui se trouve dans ta table, mais cela ne t'empêche pas de tester si aucun résultat n'est retourner et dans ce cas de faire le traitement voulu...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ResultSet r1 = ...; if (r1.next()) { // l'utilisateur existe dans la table } else { // l'utilisateur n'est pas dans la table }
Exactement, je souhaite faire une requête qui me renvoie une ligne pour un nom d'utilisateur donné et si l'utilisateur n'est pas dans ta table, je veux qu'il apparaisse également.
Une requête de ce style :
Si 'DUPONT' est dans la table, il sera retourné par la première requête.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 select NOM from MATABLE union select 'DUPONT' from TABLE_D_UNE_LIGNE where not exists ( select 1 from MATABLE where NOM = 'DUPONT' )
Sinon la deuxième ajoutera une ligne à la liste... Il suffit d'avoir à sa disposition une table d'une seule ligne (sélection d'une seule ligne dans une quelconque table existante !)
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous,
N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton
et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.
Merci pour vos idées, mais voila exactement mon problème !
identité de la personne = nom +' '+substring(prenom,1,1) +'.'
mais si ce qui a été saisi n'existe pas dans la table alors le champs saisi doit tout de même etre renvoyé sans pour autant que celui ci soit incorporé dans la table.
merci d'avance
Il me semble que ce que tu demandes soit impossible. tu afficher des infos sur une personne en faisant un SELECT sur ta table. Mais si il ne trouve rien, il ne t'affichera rien. Mais ta requete, tu l'execute en SQL pur ou elle se trouve dans un script de style php ou autre chose ?
je l'execute en sql sous sql server. En gros j'ai 2 tables une utilisateur et une autre avec divers donnée ou on retrouve user.
Je souhaite donné a la jointure une expression qui permettra d'afficher le nom de l'utilisateur qu'il soit ou non dans la table de la forme : nom+''+substring(prenom,1,1)+'.'
je débute donc peut être que cela est impossible![]()
En SQL pur cela est impossible à moins que le nom et le prenom se trouve dans une autre table. Sinon tu dois passer par un script pour pouvoir utiliser des variables
je pense que cela est possible avec un left outer join
mais bon je n'en suis pas sur du tout voila ce que j'ai fais
select user_name, nom, prenom
from table1
left outer join table2
on table2.user_name = table1.nom +' '+substring (table1.prenom,1,1)+'.'
La solution est en effet une jointure externe avec LEFT OUTER JOIN, mais dans le cas d'un JOIN la jointure est décrite avec ON et non avec WHERE.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT user_name, nom, prenom FROM table1 LEFT OUTER JOIN table2 ON table2.user_name = table1.nom +' '+substring (table1.prenom,1,1)+'.'
merci je m'en suis rendu compte apres avoir ecrit le post. Un résultat ressort mais je ne l'ai pas totalement analysé donc si j'ai des problèmes je repost.
Partager