par
Tracker » 22 oct. 2007, 20:08
Salut,
Php c'est sympa, mais ton problème doit pouvoir se résoudre intégralement en SQL:
Code : Tout sélectionner
select tir.id_clients, count(tir_ns.n) as nbNum
from
(SELECT id_grids, date FROM grids_winning ORDER BY id_grids DESC LIMIT 1,1) win
inner join
(
select id_grids, substring(grids_1,1,2) as n from grids_winning union all
select id_grids, substring(grids_1,3,2) from grids_winning union all
select id_grids, substring(grids_1,5,2) from grids_winning union all
select id_grids, substring(grids_1,7,2) from grids_winning union all
select id_grids, substring(grids_1,9,2) from grids_winning union all
select id_grids, substring(grids_1,11,2) from grids_winning
) win_ns
on win.id_grids = win_ns.id_grids
inner join grids_clients tir
on tir.timeplayed between win.date and now()
left join
(
SELECT id_clients, substring(grids_1,1,2) as n from grids_clients union all
SELECT id_clients, substring(grids_1,3,2) from grids_clients union all
SELECT id_clients, substring(grids_1,5,2) from grids_clients union all
SELECT id_clients, substring(grids_1,7,2) from grids_clients union all
SELECT id_clients, substring(grids_1,9,2) from grids_clients union all
SELECT id_clients, substring(grids_1,11,2) from grids_clients
) tir_ns
on tir_ns.id_clients = tir.id_clients
and tir_ns.n = win_ns.n
group by tir.id_clients
L'ordre te ramène, pour le dernier tirage, l'id des clients ayant joué aussi que leur nombre de numéros gagnants.
à tester... si tu files un lien pour télécharger les structures + données SQL, je veux bien m'y coller
Tracker.
Salut,
Php c'est sympa, mais ton problème doit pouvoir se résoudre intégralement en SQL:
[code]
select tir.id_clients, count(tir_ns.n) as nbNum
from
(SELECT id_grids, date FROM grids_winning ORDER BY id_grids DESC LIMIT 1,1) win
inner join
(
select id_grids, substring(grids_1,1,2) as n from grids_winning union all
select id_grids, substring(grids_1,3,2) from grids_winning union all
select id_grids, substring(grids_1,5,2) from grids_winning union all
select id_grids, substring(grids_1,7,2) from grids_winning union all
select id_grids, substring(grids_1,9,2) from grids_winning union all
select id_grids, substring(grids_1,11,2) from grids_winning
) win_ns
on win.id_grids = win_ns.id_grids
inner join grids_clients tir
on tir.timeplayed between win.date and now()
left join
(
SELECT id_clients, substring(grids_1,1,2) as n from grids_clients union all
SELECT id_clients, substring(grids_1,3,2) from grids_clients union all
SELECT id_clients, substring(grids_1,5,2) from grids_clients union all
SELECT id_clients, substring(grids_1,7,2) from grids_clients union all
SELECT id_clients, substring(grids_1,9,2) from grids_clients union all
SELECT id_clients, substring(grids_1,11,2) from grids_clients
) tir_ns
on tir_ns.id_clients = tir.id_clients
and tir_ns.n = win_ns.n
group by tir.id_clients
[/code]
L'ordre te ramène, pour le dernier tirage, l'id des clients ayant joué aussi que leur nombre de numéros gagnants.
à tester... si tu files un lien pour télécharger les structures + données SQL, je veux bien m'y coller :wink:
Tracker.