v2.5.2
Giriş yap

INNER JOIN komutunu doğru konumlandırma

pcmemo
772 defa görüntülendi

Merhaba arkadaşlar,
INNER JOIN komutunu bazen kullanırken sorun yaşıyorum.

Örneğin :

INNER JOIN tbl_personel ON tbl_personel.UserID = tbl_yurtici_siparis.siparis_veren_id

yukarıdaki kodu aşağıdaki gibi yerleştirğimde çalışıyor.

$sorgu = $db->prepare("SELECT * FROM tbl_yurtici_siparis INNER JOIN tbl_personel ON tbl_personel.UserID = tbl_yurtici_siparis.siparis_veren_id order by OrdID desc");

Fakat birden fazla kolonda arama yapmak için aşağıdaki sorguda neresine ilave ettimse çalıştıramadım.

$sorgu = $db->prepare('SELECT * FROM tbl_yurtici_siparis buraya_ekledim_çalışmadı WHERE CONCAT(`model_no`, `firma`, `aciklama`) LIKE :par  order by OrdID desc');
$sorgu->execute(array(':par' => '%'.$search.'%'));

Arama sonuçlarımda 2. tablodan veri çekemiyorum tam olarak neresine koymalı veya nasıl kullanmalıyım.

Teşekkürler..

Cevap yaz
Cevaplar (4)
pcmemo
1748 gün önce

@qplot INNER JOIN bunun neresinde?

qplot
1748 gün önce

WHERE CONCAT(adi, ' ', soyadi, ' ', gsm, ' ', mail) LIKE '%' ? '%' KENDINE GORE AYARLAYIP DENERMISIN

pcmemo
1748 gün önce

@buraksuluk cevap için teşekkür ederim. Evet search verisi $_GET olarak geliyor buna rağmen kod çalışmadı. Biraz daha istediğin detayları vereyim.

tbl_yurtici_siparis tablosunda arama yapabilmek istediğim kolonlar zaten sorguda da olduğu gibi model_no, firma ve aciklama kolonları.

tbl_yurtici_siparis tablosunun verilerini listelerkeden siparis_veren_id kolonunda ki id ile tbl_personel tablosundaki UserID ile eşleştirerek Name kolonundan isim almaya çalışıyorum.

ve search işlemi yapmasam aşağıdaki sorgu ile rahatça yapabiliyorum yani INNER JOIN düzgün çalışıyor. Ama search devreye girince çalışmadı.

buraksuluk
1748 gün önce

Şu şekilde denermisin ? tabi $search değişkenin sorunsuz geldiğini varsayıyorum.

$sorgu = $db->prepare("SELECT * FROM tbl_yurtici_siparis INNER JOIN tbl_personel ON tbl_personel.UserID = tbl_yurtici_siparis.siparis_veren_id 
where (model_no like :par) or (firma like :par) or (aciklama like :par ) order by OrdID desc ");
$sorgu ->bindValue(':par', '%'.$search.'%', PDO::PARAM_STR);
$sorgu->execute();
$sorgu->fetchAll();

Eğer join yaptıkdan sonra GROUP_CONCAT ile satırları birleştirip içinde aratmak istiyorsan iki tablonun kolon adlarını paylaş
ve join yapmak kolon ve GROUP_CONCAT birleştirmek istediğin kolonları paylaşırsan yardımcı olayım yani * FROM şeklilde olmasın