[英]Why isn't this easy join working? (mysql)
我有兩個表, classified
表和fordon
。
classified table:
classified_id (PK)
etc...
fordon table:
id (PK)
classified_id (FK)
我嘗試使用以下代碼:
SELECT * FROM classified, fordon WHERE classified.ad_id IN ('$solr_id_arr_imploded') AND classified.classified_id=fordon.classified_id
順便說一句,該數組是從solr返回的ad_id:s的集合,沒關系,這不是這里的問題...
然后,我在while循環中使用mysql_fetch_array來顯示所有結果:
while($row = mysql_fetch_array($qry_result)){
但是,當我嘗試回顯表fordon
內的fordon
,則找不到索引錯誤。 但是classified
表中的任何內容都可以回顯!
有任何想法嗎?
謝謝
更新
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.
這有幫助嗎?
SELECT *
FROM classified c
INNER JOIN fordon f ON c.classified_id=f.classified_id
WHERE classified.ad_id IN ('$solr_id_arr_imploded');
同樣,使用它通常不是一個好主意: SELECT *
。 最好只選擇想要的元素,或者在要獲取的表的上下文中使用*
,例如
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');
當您用毯子*
進行聯接時,會得到所有表中的每個字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.