j'ai deux table qui sont liées
disons que le table 'contact' contient des utilisateur
et le table 'telephone' contient des numero de téléphone ainsi que le le
type de telephone ('PRO', 'PERSO', 'MOBILE')
j'ai besoin de connaitre pour chaque utilisateur combien il a de numéro
'PRO'
donc je fais
SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t
ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
sauf que la, j'ai jamais 0 !!!
donc j'ai mis
SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t
ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO' OR t.typetel IS NULL;
mais bon... ca me dérange un peu, car je peux pas etre sur qu'il n'existe
pas un numero de téléphone ayant un type non défini et donc comptabiliser
dans ma requete...
Donc comment faire ma requette pour que ca compte les numero de telephone
'PRO' et uniquement ceux la.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Stéphane
"Etienne SOBOLE" a écrit:
Salut.
j'ai deux table qui sont liées disons que le table 'contact' contient des utilisateur et le table 'telephone' contient des numero de téléphone ainsi que le le type de telephone ('PRO', 'PERSO', 'MOBILE')
j'ai besoin de connaitre pour chaque utilisateur combien il a de numéro 'PRO' donc je fais SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
sauf que la, j'ai jamais 0 !!!
Essaie avec INNER JOIN
SELECT iduser, count(t.idtel) FROM user u INNER JOIN telephone t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
Stéphane La souplesse d'esprit permet de s'adapter dans toutes circonstances.
http://www.velo-passion.com pour les fans de vélo http://www.lorimier.com/chemin-des-cretes-du-jura une ballade à pied d'une semaine à 2 http://www.baby-boum.ch l'enfant n'est-il pas l'avenir de l'homme?
"Etienne SOBOLE" a écrit:
Salut.
j'ai deux table qui sont liées
disons que le table 'contact' contient des utilisateur
et le table 'telephone' contient des numero de téléphone ainsi que le le
type de telephone ('PRO', 'PERSO', 'MOBILE')
j'ai besoin de connaitre pour chaque utilisateur combien il a de numéro
'PRO'
donc je fais
SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t
ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
sauf que la, j'ai jamais 0 !!!
Essaie avec INNER JOIN
SELECT iduser, count(t.idtel)
FROM user u
INNER JOIN telephone t ON u.idctc = t.idctc
WHERE t.typetel LIKE 'PRO';
Stéphane
La souplesse d'esprit permet de s'adapter dans toutes circonstances.
http://www.velo-passion.com pour les fans de vélo
http://www.lorimier.com/chemin-des-cretes-du-jura une ballade à pied d'une semaine à 2
http://www.baby-boum.ch l'enfant n'est-il pas l'avenir de l'homme?
j'ai deux table qui sont liées disons que le table 'contact' contient des utilisateur et le table 'telephone' contient des numero de téléphone ainsi que le le type de telephone ('PRO', 'PERSO', 'MOBILE')
j'ai besoin de connaitre pour chaque utilisateur combien il a de numéro 'PRO' donc je fais SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
sauf que la, j'ai jamais 0 !!!
Essaie avec INNER JOIN
SELECT iduser, count(t.idtel) FROM user u INNER JOIN telephone t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
Stéphane La souplesse d'esprit permet de s'adapter dans toutes circonstances.
http://www.velo-passion.com pour les fans de vélo http://www.lorimier.com/chemin-des-cretes-du-jura une ballade à pied d'une semaine à 2 http://www.baby-boum.ch l'enfant n'est-il pas l'avenir de l'homme?
Ph. B.
Etienne SOBOLE wrote:
Salut.
j'ai deux table qui sont liées disons que le table 'contact' contient des utilisateur et le table 'telephone' contient des numero de téléphone ainsi que le le type de telephone ('PRO', 'PERSO', 'MOBILE')
j'ai besoin de connaitre pour chaque utilisateur combien il a de numéro 'PRO' donc je fais SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
sauf que la, j'ai jamais 0 !!!
donc j'ai mis SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO' OR t.typetel IS NULL;
mais bon... ca me dérange un peu, car je peux pas etre sur qu'il n'existe pas un numero de téléphone ayant un type non défini et donc comptabiliser dans ma requete...
Donc comment faire ma requette pour que ca compte les numero de telephone 'PRO' et uniquement ceux la.
merci Etienne
Bonjour,
1°) Une description de la table et des colonnes aurait été bien...
2°) Pourquoi LIKE ?
SELECT iduser, ( SELECT Count(*) FROM telephone WHERE idctc = u.idctc AND typetel = 'PRO' ) AS NbTelPro FROM users u
-- Philippe.
Etienne SOBOLE wrote:
Salut.
j'ai deux table qui sont liées
disons que le table 'contact' contient des utilisateur
et le table 'telephone' contient des numero de téléphone ainsi que le le
type de telephone ('PRO', 'PERSO', 'MOBILE')
j'ai besoin de connaitre pour chaque utilisateur combien il a de numéro
'PRO'
donc je fais
SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t
ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
sauf que la, j'ai jamais 0 !!!
donc j'ai mis
SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t
ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO' OR t.typetel IS NULL;
mais bon... ca me dérange un peu, car je peux pas etre sur qu'il n'existe
pas un numero de téléphone ayant un type non défini et donc comptabiliser
dans ma requete...
Donc comment faire ma requette pour que ca compte les numero de telephone
'PRO' et uniquement ceux la.
merci
Etienne
Bonjour,
1°) Une description de la table et des colonnes aurait été bien...
2°) Pourquoi LIKE ?
SELECT iduser,
( SELECT Count(*)
FROM telephone
WHERE idctc = u.idctc
AND typetel = 'PRO' ) AS NbTelPro
FROM users u
j'ai deux table qui sont liées disons que le table 'contact' contient des utilisateur et le table 'telephone' contient des numero de téléphone ainsi que le le type de telephone ('PRO', 'PERSO', 'MOBILE')
j'ai besoin de connaitre pour chaque utilisateur combien il a de numéro 'PRO' donc je fais SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
sauf que la, j'ai jamais 0 !!!
donc j'ai mis SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO' OR t.typetel IS NULL;
mais bon... ca me dérange un peu, car je peux pas etre sur qu'il n'existe pas un numero de téléphone ayant un type non défini et donc comptabiliser dans ma requete...
Donc comment faire ma requette pour que ca compte les numero de telephone 'PRO' et uniquement ceux la.
merci Etienne
Bonjour,
1°) Une description de la table et des colonnes aurait été bien...
2°) Pourquoi LIKE ?
SELECT iduser, ( SELECT Count(*) FROM telephone WHERE idctc = u.idctc AND typetel = 'PRO' ) AS NbTelPro FROM users u
-- Philippe.
Ph. B.
Stéphane wrote:
"Etienne SOBOLE" a écrit:
Salut.
j'ai deux table qui sont liées disons que le table 'contact' contient des utilisateur et le table 'telephone' contient des numero de téléphone ainsi que le le type de telephone ('PRO', 'PERSO', 'MOBILE')
j'ai besoin de connaitre pour chaque utilisateur combien il a de numéro 'PRO' donc je fais SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
sauf que la, j'ai jamais 0 !!!
Essaie avec INNER JOIN
NON, car Etienne veut aussi que la jointure lui renvoie les utilisateurs sans téléphone pro ! INNER JOIN ne renvoie que les éléments qui ont une corespondance !
SELECT iduser, count(t.idtel) FROM user u INNER JOIN telephone t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
En plus, il manque la clause de regroupement permettant à la fonction d'aggrégation d'opérer, le paramètre suivant LIKE est incomplet ou/et mal appliqué. < t.typetel LIKE 'PRO' > est beaucoup moins efficace que < t.typetel = 'PRO' >
SELECT u.iduser, count(t.idtel) FROM user u INNER JOIN telephone t ON t.idctc = u.idctc WHERE t.typetel LIKE 'PRO%' GROUP BY u.iduser
Stéphane La souplesse d'esprit permet de s'adapter dans toutes circonstances.
http://www.velo-passion.com pour les fans de vélo http://www.lorimier.com/chemin-des-cretes-du-jura une ballade à pied d'une semaine à 2 http://www.baby-boum.ch l'enfant n'est-il pas l'avenir de l'homme?
-- Philippe.
Stéphane wrote:
"Etienne SOBOLE" a écrit:
Salut.
j'ai deux table qui sont liées
disons que le table 'contact' contient des utilisateur
et le table 'telephone' contient des numero de téléphone ainsi que le le
type de telephone ('PRO', 'PERSO', 'MOBILE')
j'ai besoin de connaitre pour chaque utilisateur combien il a de numéro
'PRO'
donc je fais
SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t
ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
sauf que la, j'ai jamais 0 !!!
Essaie avec INNER JOIN
NON, car Etienne veut aussi que la jointure lui renvoie les utilisateurs sans
téléphone pro ! INNER JOIN ne renvoie que les éléments qui ont une corespondance !
SELECT iduser, count(t.idtel)
FROM user u
INNER JOIN telephone t ON u.idctc = t.idctc
WHERE t.typetel LIKE 'PRO';
En plus, il manque la clause de regroupement permettant à la fonction
d'aggrégation d'opérer, le paramètre suivant LIKE est incomplet ou/et mal appliqué.
< t.typetel LIKE 'PRO' > est beaucoup moins efficace que < t.typetel = 'PRO' >
SELECT u.iduser, count(t.idtel)
FROM user u
INNER JOIN telephone t ON t.idctc = u.idctc
WHERE t.typetel LIKE 'PRO%'
GROUP BY u.iduser
Stéphane
La souplesse d'esprit permet de s'adapter dans toutes circonstances.
http://www.velo-passion.com pour les fans de vélo
http://www.lorimier.com/chemin-des-cretes-du-jura une ballade à pied d'une semaine à 2
http://www.baby-boum.ch l'enfant n'est-il pas l'avenir de l'homme?
j'ai deux table qui sont liées disons que le table 'contact' contient des utilisateur et le table 'telephone' contient des numero de téléphone ainsi que le le type de telephone ('PRO', 'PERSO', 'MOBILE')
j'ai besoin de connaitre pour chaque utilisateur combien il a de numéro 'PRO' donc je fais SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
sauf que la, j'ai jamais 0 !!!
Essaie avec INNER JOIN
NON, car Etienne veut aussi que la jointure lui renvoie les utilisateurs sans téléphone pro ! INNER JOIN ne renvoie que les éléments qui ont une corespondance !
SELECT iduser, count(t.idtel) FROM user u INNER JOIN telephone t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO';
En plus, il manque la clause de regroupement permettant à la fonction d'aggrégation d'opérer, le paramètre suivant LIKE est incomplet ou/et mal appliqué. < t.typetel LIKE 'PRO' > est beaucoup moins efficace que < t.typetel = 'PRO' >
SELECT u.iduser, count(t.idtel) FROM user u INNER JOIN telephone t ON t.idctc = u.idctc WHERE t.typetel LIKE 'PRO%' GROUP BY u.iduser
Stéphane La souplesse d'esprit permet de s'adapter dans toutes circonstances.
http://www.velo-passion.com pour les fans de vélo http://www.lorimier.com/chemin-des-cretes-du-jura une ballade à pied d'une semaine à 2 http://www.baby-boum.ch l'enfant n'est-il pas l'avenir de l'homme?
-- Philippe.
Etienne SOBOLE
"Ph. B." a écrit dans le message de news: 40f2b53c$0$25752$
1°) Une description de la table et des colonnes aurait été bien...
voila bon j'ai du un peu simplifier parce que a la base c'est pas une histoire de contact et de telephone.
2°) Pourquoi LIKE ?
SELECT iduser, ( SELECT Count(*) FROM telephone WHERE idctc = u.idctc AND typetel = 'PRO' ) AS NbTelPro FROM users u
Bon ben je vais essayer. ton truc. merci.
Etienne
Antoine Dinimant
...
sauf que la, j'ai jamais 0 !!!
donc j'ai mis SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO' OR t.typetel IS NULL;
mais bon... ca me dérange un peu, car je peux pas etre sur qu'il n'existe pas un numero de téléphone ayant un type non défini et donc comptabiliser dans ma requete...
Donc comment faire ma requette pour que ca compte les numero de telephone 'PRO' et uniquement ceux la.
que dirais-tu de :
...ON u.idctc = t.idctc WHERE t.typetel = 'PRO' OR t.idctc IS NULL;
comme ça, le typetel NULL n'est autorisé que s'il est vraiment dû à la jointure ouverte.
...
sauf que la, j'ai jamais 0 !!!
donc j'ai mis
SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t
ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO' OR t.typetel IS NULL;
mais bon... ca me dérange un peu, car je peux pas etre sur qu'il n'existe
pas un numero de téléphone ayant un type non défini et donc comptabiliser
dans ma requete...
Donc comment faire ma requette pour que ca compte les numero de telephone
'PRO' et uniquement ceux la.
que dirais-tu de :
...ON u.idctc = t.idctc
WHERE t.typetel = 'PRO' OR t.idctc IS NULL;
comme ça, le typetel NULL n'est autorisé que s'il est vraiment dû à la
jointure ouverte.
donc j'ai mis SELECT iduser, count(t.idtel) FROM user AS u LEFT OUTER JOIN telephone AS t ON u.idctc = t.idctc WHERE t.typetel LIKE 'PRO' OR t.typetel IS NULL;
mais bon... ca me dérange un peu, car je peux pas etre sur qu'il n'existe pas un numero de téléphone ayant un type non défini et donc comptabiliser dans ma requete...
Donc comment faire ma requette pour que ca compte les numero de telephone 'PRO' et uniquement ceux la.
que dirais-tu de :
...ON u.idctc = t.idctc WHERE t.typetel = 'PRO' OR t.idctc IS NULL;
comme ça, le typetel NULL n'est autorisé que s'il est vraiment dû à la jointure ouverte.
Etienne SOBOLE
"Antoine Dinimant" a écrit dans le message de news:
En un mot: Genial. ca marche nickel.
merci Etienne
que dirais-tu de : ...ON u.idctc = t.idctc WHERE t.typetel = 'PRO' OR t.idctc IS NULL;
comme ça, le typetel NULL n'est autorisé que s'il est vraiment dû à la jointure ouverte.
"Antoine Dinimant" <antoun@free.fr> a écrit dans le message de news:
40F33204.3010707@free.fr...
En un mot:
Genial.
ca marche nickel.
merci
Etienne
que dirais-tu de :
...ON u.idctc = t.idctc
WHERE t.typetel = 'PRO' OR t.idctc IS NULL;
comme ça, le typetel NULL n'est autorisé que s'il est vraiment dû à la
jointure ouverte.