Neden bu kolay çalışmıyor katılmak değil mi?

1 Cevap php

İki tablo, classified ve fordon var.

classified table:
classified_id (PK)
etc...

fordon table:
id (PK)
classified_id (FK)

Ben bu kodu kullanmayı deneyin:

SELECT * FROM classified, fordon WHERE classified.ad_id IN ('$solr_id_arr_imploded') AND classified.classified_id=fordon.classified_id

BTW, dizi ad_id bir dizi: Solr döndü s, burada sorun değil, aldırma ...

Sonra bütün sonuçlarını görüntülemek için bir süre-döngüde mysql_fetch_array kullanın:

while($row = mysql_fetch_array($qry_result)){

I fordon tablo içinde bir şey yankı çalıştığınızda, ancak, daha sonra dizin bulunamıyor hata görünür. Ama tablo içinde ne olursa olsun classified echo için çalışır!

Herhangi bir fikir?

Teşekkürler

UPDATE

   while($row = mysql_fetch_array($qry_result)){
   echo $row['type']; // This doesn't work, because the 'type' column is inside the 'fordon' table
   echo $row['headline']; // This does work because it's inside 'classified' table.

1 Cevap

Bu yardımcı olur mu?

SELECT * 
FROM classified c
INNER JOIN fordon f ON c.classified_id=f.classified_id
WHERE classified.ad_id IN ('$solr_id_arr_imploded');

Ayrıca, onun genellikle iyi bir fikir değil kullanmak için: SELECT *. Onun yalnızca istediğiniz öğeleri seçin veya, örneğin, tüm alıyorsanız tablo bağlamında * kullanmak ya da daha iyi

SELECT classified.* 
FROM classified c
INNER JOIN fordon f ON c.classified_id=f..classified_id
WHERE classified.ad_id IN ('$solr_id_arr_imploded');

Bir battaniye ile katıldığında ne zaman * tüm tablolar her alanda olsun.