• 31-12-2012, 01:12:41
    #1
    Eposta Aktivasyonu Gerekmekte
    İyi günler arkadaşlar; Bir script te şöyle bir mysql sorgusu var, ve işlevi tüm veriyi çekmek.


    $this->query = 'SELECT p.*, p.id AS pid, "public" AS `type` FROM posts p WHERE p.user_id="'.$this->target_user->id.'" '. $this->filter->groups() .' AND p.api_id<>2 AND p.api_id<>6 ';                    $this->query_order = ' ORDER BY p.id DESC ';                    break;

    "p" olarak kısalttığı tablo adı posts. Posts tablosunun attached sütunu "1" olan değerleri bu kod ile kolaylıkla çekebiliyorum. Bunun için ;
    $this->query = 'SELECT p.*, p.id AS pid, "public" AS `type` FROM posts p WHERE p.user_id="'.$this->target_user->id.'" '. $this->filter->groups() .' AND p.api_id<>2 AND p.attached="1" AND p.api_id<>6 ';                    $this->query_order = ' ORDER BY p.id DESC ';                    break;
    sorgusunu kullanıyorum. Ancak benim istediğim ise posts tablosundan farklı olarak, "posts_attachments" tablosundaki aynı "post_id" ye sahip verinin "type" sütunundaki değerinin "image" olanlarını da filtre etmesi. posts_attachements tablosundaki post_id sütunu , posts tablosundaki id değeri olacak yani.


    Yani Posts tablosunda attached="1" olacak aynı zamanda posts_attachments tablosunda type="image" olacak.
  • 01-01-2013, 04:24:14
    #2
    Eposta Aktivasyonu Gerekmekte
    Konuyu mu anlatamadım ben acaba ya kimse bir şey yazmamış
  • 01-01-2013, 15:45:37
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    SELECT p.*, p.id AS pid, "public" AS `type` FROM posts p left join post_attachments pa on pa.post_id = p.id
    where pa.type =  ...
    where kısmında artık 2 tabloyuda istediğin gibi kullanabilirsin.
  • 01-01-2013, 19:51:38
    #4
    Eposta Aktivasyonu Gerekmekte
    Boş sorgu verdi kardeşim. Sağolasın yine de.
  • 01-01-2013, 23:41:58
    #5
    SELECT p.*, pa.* FROM posts p left join post_attachments pa on pa.post_id = p.id
    Sadece bunu denediğinde ne geliyor?
  • 03-01-2013, 20:43:36
    #6
    Eposta Aktivasyonu Gerekmekte
    Uğraşlarım sonucu şöyle bir kodla işimi hallettim. Teşekkürler yardım için.

    $this->query	= 'SELECT p.*, p.id AS pid, "public" AS `type` FROM posts p INNER JOIN (SELECT pm.post_id, p.date FROM posts_attachments pm, posts p WHERE pm.post_id=p.id AND p.api_id<>2 AND p.api_id<>6 AND pm.type="image" AND p.attached>0 AND p.user_id="'.$this->target_user->id.'") x ON x.post_id=p.id '. 
    					$this->filter->groups();
    					$this->query_order = ' ORDER BY p.id DESC  ';