 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
gogu19
Data înscrierii: 02/Ian/2008
Mesaje: 217
|
| Trimis: Joi Mar 06, 2008 9:56 am Titlul subiectului: Inregistrari unice |
|
|
Salutare
Am un camp id_convorbire,ale carui valori pot fi duplicat sau unice si vreau sa le selectez pe toate o singura data,dar sa fie bagata ca,conditie,nu in select cu "select distinct".Aveti vreo idee?Ms
queryul este urmatorul:
$q="insert into convorbiri_temp (select null,
a.data data,
a.ora ora,
if(b.extensie is null ,a.extensie,b.extensie) extensie,
a.trunchi trunchi,
a.numar numar,
a.durata durata,
a.codacces codacces,
a.cd cd,
a.data_es data_es,
a.ora_es ora_es,
if(b.centrala is null ,a.centrala,b.centrala) centrala,
a.cdr_id cdr_id,
a.id_convorbire id_convorbire,
a.tip_inreg tip_inreg,
a.centrala centrala_out
from (SELECT * FROM ".$dbPBX.".".$tabel." where (id_convorbire<>0 and tip_inreg=3) or extensie=15 or (tip_inreg=0 and numar not like '%<D>%') or (tip_inreg=1 and id_convorbire=0) or (select * from ".$dbPBX.".".$tabel." where tip_inreg=1 and id_convorbire<>0 group by id_convorbire having count(id_convorbire)<2))a left join
(SELECT * FROM ".$dbPBX.".".$tabel." where id_convorbire<>0 and tip_inreg=1) b
on a.id_convorbire=b.id_convorbire
)";
La partea ingrosata imi da eroare
Ideea e ca vreau sa pastrez niste o singura inregistrare unde am id_convorbire identic(Left-joinul),iar unde am o singura inregistrare sa-mi ia tot(partea ingrosata) |
|
| Sus |
|
mihaitha
Data înscrierii: 04/Mai/2007
Mesaje: 1912
Locație: Sibiu
|
| Trimis: Joi Mar 06, 2008 9:57 am Titlul subiectului: |
|
|
Asta e mai degraba de mysql decat de php:
Cod:
SELECT DISTINCT id_convorbire FROM tabela
|
|
| Sus |
|
gogu19
Data înscrierii: 02/Ian/2008
Mesaje: 217
|
| Trimis: Joi Mar 06, 2008 9:59 am Titlul subiectului: |
|
|
| Scuze,e de mysql,nu se va mai repeta:D |
|
| Sus |
|
gogu19
Data înscrierii: 02/Ian/2008
Mesaje: 217
|
| Trimis: Joi Mar 06, 2008 11:11 am Titlul subiectului: |
|
|
| Pai tocmai,ca nu vreau select distinct,am un left join f mare iar constructia lui nu-mi permite folosirea lui "select distinct" |
|
| Sus |
|
griffin
Data înscrierii: 07/Dec/2006
Mesaje: 107
|
| Trimis: Joi Mar 06, 2008 11:17 am Titlul subiectului: |
|
|
| Pune un GROUP BY id_convorbire si-ti da cate un rand pentru fiecare id.Sper ca asta vroiai |
|
| Sus |
|
mihaitha
Data înscrierii: 04/Mai/2007
Mesaje: 1912
Locație: Sibiu
|
| Trimis: Joi Mar 06, 2008 12:21 pm Titlul subiectului: |
|
|
| sorry, n-am vazut ca vrei fara select distinct. |
|
| Sus |
|
gogu19
Data înscrierii: 02/Ian/2008
Mesaje: 217
|
| Trimis: Joi Mar 06, 2008 12:34 pm Titlul subiectului: |
|
|
| Am rezolvat-o pana la urma,am mai facut un query.Iniatial am vrut sa mai bag un inner join dar nu stiu daca merge sa folosesc si left join si inner join in aceasi interogare |
|
| Sus |
|
griffin
Data înscrierii: 07/Dec/2006
Mesaje: 107
|
| Trimis: Joi Mar 06, 2008 7:47 pm Titlul subiectului: |
|
|
Merge sa folosesti orice fel de join-uri vrei (inclusiv INNER JOIN si LEFT JOIN)
Exemplu http://dev.mysql.com/doc/refman/5.0/en/left-join-optimization.html |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|