En iyi yanıtlayıcılar
INNER JOIN seçilen id'den bilgileri alma

Soru
-
select * from personel
select * from adres
/* inner join */
select p.personel_id,p.personel_adi,p.personel_soyadi,p.personel_cinsiyet,a.telefon_no,a.adres
from personel as p
inner join adres as a
on p.personel_id = a.personel_id;herkese merhabalar, böyle bir sqlquery yazdım. burda tablolarda görüntülenmek isteyenleri görüntüleyebiliyorum. fakat ben id'si 107 olan veya adı melis olan kullanıcıları çek demek isteseydim. bu query satırı nasıl olmalıydı ?
Yanıtlar
-
o nedenle hata vermez. Saırım sizin alanlarınızdan biri TEXT. Hatayı Unnion kullanınca o nedenle verebilir. Bu durumda ya text alanı sorgudan çıkaracaksınız. Ya birinci seçenekteki gibi OR kullanacaksınız ya da eğer çok uzun değilse text'i nvarchar/varchar tiplerinden birine (MAX) olarak cast edeceksiniz.
- Yanıt Olarak İşaretleyen Serkan Canseven 19 Mart 2016 Cumartesi 20:00
Tüm Yanıtlar
-
select p.personel_id,p.personel_adi,p.personel_soyadi,p.personel_cinsiyet,a.telefon_no,a.adres from personel as p join adres as a on p.personel_id = a.personel_id where p.personel_id=107 OR p.personel_adi='melis'
Eğer kayıt sayınız çok fazla ise OR Yerine Union çok daha hızlı çalışır.
Yani şöyle
select p.personel_id,p.personel_adi,p.personel_soyadi,p.personel_cinsiyet,a.telefon_no,a.adres from personel as p join adres as a on p.personel_id = a.personel_id where p.personel_id=107 Union select p.personel_id,p.personel_adi,p.personel_soyadi,p.personel_cinsiyet,a.telefon_no,a.adres from personel as p join adres as a on p.personel_id = a.personel_id where p.personel_adi='melis'
- Düzenleyen Halil TAŞ 19 Mart 2016 Cumartesi 06:55
-
yorumunuz için teşekkür ederim, id ve isime göre evet çekebiliyorum. ama union kullandığımda
"The data type text cannot be used as an operand to the UNION, INTERSECT or EXCEPT operators because it is not comparable. "
hatası aldım, sanırsam veritabanımda 2 tane veri olduğu için bu hatayı aldım, dediğiniz gibi çok dolu ise bu komutu kullandığımda hata almam sanırsam.
-
o nedenle hata vermez. Saırım sizin alanlarınızdan biri TEXT. Hatayı Unnion kullanınca o nedenle verebilir. Bu durumda ya text alanı sorgudan çıkaracaksınız. Ya birinci seçenekteki gibi OR kullanacaksınız ya da eğer çok uzun değilse text'i nvarchar/varchar tiplerinden birine (MAX) olarak cast edeceksiniz.
- Yanıt Olarak İşaretleyen Serkan Canseven 19 Mart 2016 Cumartesi 20:00
-