簡體   English   中英

為什么這種簡單的連接不起作用? (mysql)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM