Toujours sur le même sujet, pour embêter un peu
J'ai une table clients avec 3 champs id, reference et age. Les 2 derniers étant des textes.
Ayant l'id d'un client X, j'aimerais récupérer tous les clients dont les 4 premières lettres de reference soit identique à celles du client X.
exemple:
id | reference | age
1 | 4bujtttt12 | 35
2 | xvcubuj4 | 28
4 | 4bujdfdfdf | 41
5 | wereztrrr | 19
6 | xvcubuj45 | 32
7 | wereztrrr | 37
8 | 4bujdfdfdf | 30
9 | xvcubuj45 | 41
10 | xvcubuj4 | 26
11 | 4bujtxtxdf | 21
12 | wereztrrr | 32
Résultats pour le client id = 12
5 | wereztrrr | 19
7 | wereztrrr | 37
J'ai fait une jointure:
ça marche assez bien
J'aimerais savoir si il y a meilleure manière de faire. Surtout si on peut éviter la jointure.
Merci
J'ai une table clients avec 3 champs id, reference et age. Les 2 derniers étant des textes.
Ayant l'id d'un client X, j'aimerais récupérer tous les clients dont les 4 premières lettres de reference soit identique à celles du client X.
exemple:
id | reference | age
1 | 4bujtttt12 | 35
2 | xvcubuj4 | 28
4 | 4bujdfdfdf | 41
5 | wereztrrr | 19
6 | xvcubuj45 | 32
7 | wereztrrr | 37
8 | 4bujdfdfdf | 30
9 | xvcubuj45 | 41
10 | xvcubuj4 | 26
11 | 4bujtxtxdf | 21
12 | wereztrrr | 32
Résultats pour le client id = 12
5 | wereztrrr | 19
7 | wereztrrr | 37
J'ai fait une jointure:
Code:
SELECT
t1.id,
t1.reference,
t1.age
FROM clients t1
JOIN (
SELECT
clients.id,
clients.reference,
LEFT(clients.reference, 4) leftref4
FROM clients
WHERE clients.id=310
) t2
ON LEFT(t1.reference, 4)=t2.leftref4
WHERE t2.id<>t1.id
ça marche assez bien
J'aimerais savoir si il y a meilleure manière de faire. Surtout si on peut éviter la jointure.
Merci