Birden fazla tablo ile Zend DB Seçin katıldı

2 Cevap php

Kullanarak aşağıdaki sorguyu çoğaltmak için çalışıyoruz Zend_Db_Select. Herhangi bir işaretçiler?

SELECT 
  compounds.id as compounds_id,
  reactions.id as reactions_id, 
  reaction_compound.number as reaction_compound_number  
FROM compounds, reactions, reaction_compound 
WHERE  
  compounds.id IN (68,74,112) 
  AND compounds.id = reaction_compound.compound  
  AND reactions.id = reaction_compound.reaction;

Özellikle birden çok tablo yapıyorsun çalıştırıyorum bazı sorunlar Zend katılır. Ben kendi sorgu oluşturucu kullanarak birden çok tablo arasında birleştirme nasıl emin değilim.

Herhangi bir Yardım takdir!

J

2 Cevap

Bir şey seviyor ve:

$compoundIds = array(68,74,112);
$select = $db->select()
   ->from('compounds', array('compounds_id' => 'id')
   ->where('compounds.id in ( ? )', $compoundIds)
   ->join('reaction_compound', 'compounds.id = reaction_compound.compound', array('reaction_compound_number' => 'number'))
   ->join('reactions', 'reactions.id = reaction_compound.reaction', array('reaction_id' => 'id');

Yani bir yere almalısınız. Bunu test etmedi, bu yüzden orada bazı hatalar olabilir.

Biçimi:

$db->select()->from('table_name')->join('...')->join('...')

Works great!
Thank both of you posters for this info! Helped me solve quite a doozy! (Abstract Table Models oh my!!) Lol

Ps: To others about to utilize the same format detailed above remember that column names will be overwritten by latter tables with same column names. Happy Coding!