INNER JOIN komutunu doğru konumlandırma
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..
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
@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ı.
Ş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