我有两个表,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
内的内容时,则找不到索引错误。但是表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');
当您使用毯子
*
进行联接时,将获得所有表中的每个字段。