Merhaba arkadaşlar;
Bu yazı içerisinde bir sql ile tabloda bulunan kayıtları herhangi bir koşul belirtmek suretiyle başka bir tablo içerisine eklemeyi anlatacağım.
Aşağıdaki örnekte olduğu gibi bir tablomuz olduğunu düşünelim.
Örnek table1 :
Örnek table2 :
Örnek olarak table1 içerisinde id bilgisi 3 olan coşkun çakıcı kaydını çekip table2 üzerine kaydedelim.
Bunun için aşağıdaki sql kodunu yazmamız yeterli.
INSERT INTO table2 (col1, col2, col3, col4) (SELECT col1, col2, col3, (1) as col4 FROM table1 WHERE id = 3)
SQL kodunu incelersek;
table2 'yi yenilediğimiz zaman aşağıdaki sonuç ortaya çıkacaktır.
Birden fazla veri satırını işleyip başka bir tablo üzerine kayıt yapmak açısından çok yararlı bir yöntem. Örneğin ilçeler bazında satış bilgilerinin yer aldığı bir tabloya sum() komutuyla değerleri toplattırıp iller tablosuna ekletebilirsiniz.
İyi çalışmalar dilerim.
(
`id` INT(11) NOT NULL auto_increment,
`col1` VARCHAR(255) DEFAULT NULL,
`col2` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
`col3` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
PRIMARY KEY (`id`)
)
engine=innodb
auto_increment=4
DEFAULT charset=latin1;
(
`id` INT(11) NOT NULL auto_increment,
`col1` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
`col2` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
`col3` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
`col4` VARCHAR(255) CHARACTER SET latin5 DEFAULT NULL,
PRIMARY KEY (`id`)
)
engine=innodb
auto_increment=7
DEFAULT charset=latin1;
Bu yazı içerisinde bir sql ile tabloda bulunan kayıtları herhangi bir koşul belirtmek suretiyle başka bir tablo içerisine eklemeyi anlatacağım.
Aşağıdaki örnekte olduğu gibi bir tablomuz olduğunu düşünelim.
Örnek table1 :
| id | col1 | col2 | col3 | ||||
|---|---|---|---|---|---|---|---|
| 1 | hasan | yıldız | 233 | ||||
| 2 | ahmet | demir | 342 | ||||
| 3 | coşkun | çakıcı | 654 | ||||
Örnek table2 :
| id | col1 | col2 | col3 | col4 | ||||
|---|---|---|---|---|---|---|---|---|
| 5 | zafer | olgun | 321 | 1 | ||||
Örnek olarak table1 içerisinde id bilgisi 3 olan coşkun çakıcı kaydını çekip table2 üzerine kaydedelim.
Bunun için aşağıdaki sql kodunu yazmamız yeterli.
INSERT INTO table2 (col1, col2, col3, col4) (SELECT col1, col2, col3, (1) as col4 FROM table1 WHERE id = 3)
SQL kodunu incelersek;
- Ekleme yapacağımız tabloyu ve kolonları belirledik
- İkinci kısımda SELECT komutu ile koşullu olarak başka bir tablodan verilerimizi çektik. Tabi ki farklı amaçlar için kullanıldığından kolon yapısı farklı olabilir. Bu nedenden dolayı değeri 1 olan col4 adında sahte bir kolon oluşturdum..
table2 'yi yenilediğimiz zaman aşağıdaki sonuç ortaya çıkacaktır.
| id | col1 | col2 | col3 | col4 | ||||
|---|---|---|---|---|---|---|---|---|
| 5 | zafer | olgun | 321 | 1 | ||||
| 6 | coşkun | çakıcı | 654 | 1 | ||||
Kullanım Alanları
Birden fazla veri satırını işleyip başka bir tablo üzerine kayıt yapmak açısından çok yararlı bir yöntem. Örneğin ilçeler bazında satış bilgilerinin yer aldığı bir tabloya sum() komutuyla değerleri toplattırıp iller tablosuna ekletebilirsiniz.
İyi çalışmalar dilerim.
Ek
table1
CREATE TABLE `table1`(
`id` INT(11) NOT NULL auto_increment,
`col1` VARCHAR(255) DEFAULT NULL,
`col2` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
`col3` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
PRIMARY KEY (`id`)
)
engine=innodb
auto_increment=4
DEFAULT charset=latin1;
table2
CREATE TABLE `table2`(
`id` INT(11) NOT NULL auto_increment,
`col1` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
`col2` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
`col3` VARCHAR(255) CHARACTER SET latin5 COLLATE latin5_bin DEFAULT NULL,
`col4` VARCHAR(255) CHARACTER SET latin5 DEFAULT NULL,
PRIMARY KEY (`id`)
)
engine=innodb
auto_increment=7
DEFAULT charset=latin1;
Yorumlar