none
INNER JOIN seçilen id'den bilgileri alma RRS feed

  • 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ı ?

    19 Mart 2016 Cumartesi 01:11

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.
    19 Mart 2016 Cumartesi 13:40

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
    19 Mart 2016 Cumartesi 06:53
  • 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.

    19 Mart 2016 Cumartesi 12:06
  • 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.
    19 Mart 2016 Cumartesi 13:40
  • evet kontrol ettim text varmış, varchar(max) olarak değiştirdiğimde hata çözüldü. teşekkür ederim
    19 Mart 2016 Cumartesi 19:47