Je suis nouveau sur sql alors soyez gentil.
Supposons que je dois afficher tous les employee_ids qui ont le même numéro de téléphone (les deux colonnes sont dans la même table)
Comment puis-je procéder sur ce problème de jointure interne ou quelque chose.
SELECT * FROM employees e1, employees e2
WHERE e1.phoneNumber = e2.phoneNumber
AND e1.id != e2.id;
Mise à jour: pour de meilleures performances et une requête plus rapide, il est bon d'ajouter e1
avant *
SELECT e1.* FROM employees e1, employees e2
WHERE e1.phoneNumber = e2.phoneNumber
AND e1.id != e2.id;
Que diriez-vous
SELECT *
FROM Employees
WHERE PhoneNumber IN (
SELECT PhoneNumber
FROM Employees
GROUP BY PhoneNumber
HAVING COUNT(Employee_ID) > 1
)
Vous pouvez le faire sans JOIN
:
SELECT *
FROM (SELECT *,COUNT(*) OVER(PARTITION BY phone_number) as Phone_CT
FROM YourTable
)sub
WHERE Phone_CT > 1
ORDER BY phone_number, employee_ids
Démo: SQL Fiddle