Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

[RESENO!]Kako selektovati iz dve tabele, a ne duplirati redove?

  • 8 odgovora
  • 4.649 pregleda

Najnovija ↓

[RESENO!]Kako selektovati iz dve tabele, a ne duplirati redove? 10.10.2010. u 03:34 · pre 195 meseci
izmenjeno 1 put, poslednji put bokivaol 10.10.2010. u 17:49
  1. bokivaol10.10.2010. u 17:49zapis iz teksta poruke
#1
Zdravo drugari,
Imam dve tabele "user_registration" i "newsletter". Kada posebno stavim komande 1 ili 2, svaka komanda radi za sebe ono sto treba da radi. Medjutim, hteo bih da spojim ove dve tabele tako da iz tabele "user_registration" izabere sve korisnike koji imaju `newsletter`='1' i da ih poredjam po emailovima I (AND) da iz tabele "newsletter" izaberem sve korisnike. Kako da spojim ove dve tabele da dobijem ovo sto sam zeleo, a da se ukoliko postoji korisnik koji se nalazi u obe tabele, tj. postoji isti email, taj korisnik prikazuje samo jednom, a ne dva puta?

Molio bih da napisete kod, objasnjenja "uradi to preko ovoga ili onoga" mi nece mnogo znaciti.


Code:
$t = dbFetchArray(dbQuery("select * from `newsletter` where `id`='".$u."'"),MYSQL_BOTH);


Code:
<?php
        $s = dbQuery("select * from `user_registration` where `newsletter`='1' order by `email`");........1        
        $s = dbQuery("select * from `newsletter` where `email`<>'' order by `email`");........................2
        $count = dbNumRows($s);
        if($count>0){
        ?>
        <select size="6" multiple="multiple" id="multi" name="multi[]" style="width:200px;">
        <?php        
            while($t = dbFetchArray($s,MYSQL_BOTH))
            {    
        ?>
            <option value="<?php echo $t["id"]; ?>"><?php echo $t["email"]; ?></option>
        <?php
            }        
        ?>
Potpis
Ako 'oces da pobedis ... ne smes da izgubis.
Re: Kako selektovati iz dve tabele, a ne duplirati redove? 10.10.2010. u 14:47 · pre 195 meseci #5
Ne znam da li sam razumljivo napisao pitanje, ali poenta je u tome, kako iskombinovati ovu komandu
Code:
$s = dbQuery("select * from `user_registration` where `newsletter`='1' order by `email`");

sa ovom:
Code:
$s = dbQuery("select * from `newsletter` where `email`<>'' order by `email`");

da bi dobio nesto ovako:

Code:
$s = dbQuery("select * from `user_registration` where `newsletter`='1' AND "select * from `newsletter` where `email`<>'' order by `email`" order by `email`");
. Naravno ovo sto sam napisao nije tacno, ali sam hteo da priblizim sta mi je potrebno.

Potrebno je da se prikazu svi emailovi iz ovih tabela koji nisu isti, tj. ukoliko ima istih da se prikaze samo jednom. To je to.
Potpis
Ako 'oces da pobedis ... ne smes da izgubis.
Re: Kako selektovati iz dve tabele, a ne duplirati redove? 10.10.2010. u 17:19 · pre 195 meseci #6
Citat:
bokivaol: Potrebno je da se prikazu svi emailovi iz ovih tabela koji nisu isti, tj. ukoliko ima istih da se prikaze samo jednom. To je to.


Probaj ovako, ako ti samo trebaju email-ovi (bez dupliranja)
Code:

(SELECT `email` FROM `user_registration`)
UNION
(SELECT `email` FROM `newsletter`)
ORDER BY `email`


Inace ne znam bas ni koliko je ovo optimalno, al nisam shvatio tacno jel ti trebaju samo emailovi ili jos nesto...
Re: Kako selektovati iz dve tabele, a ne duplirati redove? 10.10.2010. u 17:43 · pre 195 meseci #7
Citat:
Tudfa: Probaj ovako, ako ti samo trebaju email-ovi (bez dupliranja)
Code:

(SELECT `email` FROM `user_registration`)
UNION
(SELECT `email` FROM `newsletter`)
ORDER BY `email`


Treba mi ovo sto si napisao, samo da iz tabele "user_registration" prikazuje samo one emailove koji imaju "newsletter=1"
Potpis
Ako 'oces da pobedis ... ne smes da izgubis.
Re: Kako selektovati iz dve tabele, a ne duplirati redove? 10.10.2010. u 17:49 · pre 195 meseci #8
HVALA TUDFA!!!

Resio sam ovo

Code:
"(SELECT `email` FROM `user_registration` WHERE `newsletter`='1') UNION (SELECT `email` FROM `newsletter`) ORDER BY `email`"


TUDFA, hvala jos jednom
Potpis
Ako 'oces da pobedis ... ne smes da izgubis.
Re: [RESENO!]Kako selektovati iz dve tabele, a ne duplirati redove? 02.11.2010. u 21:22 · pre 194 meseca #9
posto nisi napravio obicni text "show create table newsletter" i "show create table user_registration" ne mogu da rekonstruisem tabele i napravim testni unos podataka...

Mislim da to sto zelis moze da odradi ovaj query ali nisam siguran jer nema tabele a ne zelim da ih prekucavam:

Code:

select a.email from newsletter as a left join user_registration as b on (a.email=b.email) where b.newsletter=1;


Ovo bi vjerovatno trebalo da se joinuje po user id-u jer bi trebalo da id u obe tabele bude kljuc koji ih povezuje, odnosno, korisnicki ID. Mada, opet, autoincrement na obe tabele ne garantuje da ce korisnik imati isti ID u obe tabele.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme