View Single Post
Sponsorlu Bağlantılar
Zoque.Forum
Advertisement
Old 14.12.2002   #14 (permalink)
norg
 
Üyelik Tarihi: 18.03.2002
Yer: İstanbul
Yaş: 29
Mesaj: 29
Ewet Oldu Galiba

Simdi oncelikle Sebselect yaptirmak biraz kastirir onun icin degisik bir cozum buldum. En son yazdigima cok benziyor sadece Distinct ekledim. Bir de belki yarari olabilir diye table larin dump ini ekledim

Query bu sekilde
SELECT DISTINCT(list.email) FROM list, checksend WHERE list.list_id=checksend.list_id AND checksend.mail_id<>3


CheckSend Table i
-------------------------
CREATE TABLE checksend (
checksend_id int(5) NOT NULL auto_increment,
list_id int(5) NOT NULL default '0',
mail_id int(5) NOT NULL default '0',
PRIMARY KEY (checksend_id),
UNIQUE KEY checksend_id (checksend_id)
)

List Table i
---------------------------
CREATE TABLE list (
list_id int(5) NOT NULL auto_increment,
email varchar(255) NOT NULL default '',
PRIMARY KEY (list_id),
UNIQUE KEY email (email),
UNIQUE KEY list_id (list_id)
)

UNIQUE kurallari ve primary kurallari bu sekilde olucak.

Ben bunu MySQL de calistirdim herhangi bir sorun cikmiyor fakat dikkat edilmesi gereken ufak bir nokta var. List tableina ekledigin bir mail e yollanmayan mailleri bulabilmen icin ona en az bir kere mail yollamis olman lazim. Bunu da su sekilde asabilirsin. Eger list table ina bir mail ekliyorsan checksend table inada

checksen_id, Adaminlistidsi, Mail_idsi,
XX, XX, 0

Yani adama 0 kodlu bir mail yollamis gibi olucaksin. Bu sekilde sorun cozulebilir.

Eğer Subselect kullanmak istiyor isan illa bir iki ornek:

1)SELECT * FROM table1 WHERE NOT EXISTS (SELECT id FROM table2 WHERE table1.id=table2.id);

2)SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id WHERE table2.id IS NULL;

Bu ornekleri seninkine uyduramadim ama ugrasilir ise bence uydurulubilir.

Kolay Gelsin.
norg şu an çevrimdışı   Mesajdan alıntı yaparak yeni bir cevap ekleyin