Php 为什么这个简单的连接不起作用?(mysql)
我有两张桌子,分类的和福特的 我尝试使用以下代码:Php 为什么这个简单的连接不起作用?(mysql),php,sql,mysql,database,Php,Sql,Mysql,Database,我有两张桌子,分类的和福特的 我尝试使用以下代码: 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\u fetch\u数组来显示所有结果: while($ro
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\u fetch\u数组来显示所有结果:
while($row = mysql_fetch_array($qry_result)){
但是,当我尝试回显fordon表中的内容时,就会出现“找不到索引”错误。但是,无论是在表内分类工程回声
有什么想法吗
谢谢
更新
这有用吗
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');
当您使用毯子进行连接*时,您将得到所有表中的每个字段。当您回显结果时,您的代码是什么样子的?我的意思是,实际的while循环:这里的FK设置可能有误吗?FK在fordon桌上,也许应该换个方向?从SELECT*from更改查询是否重要。。。要从中选择fordon.type、classified.headline,请执行以下操作。。。只是看看你的查询设置是否正确。如果返回结果,请告诉我,但我无法判断它是否与外键所在的位置有关。它在字段列表中给出“未知列”“年份”。。。但是标题起作用了!嗯,我现在得去上班了,但我以后还要再试试。。。如果你有什么想法,请告诉我。。。谢谢:我相信这就是他想要实现的。明白,但如果你已经分类了。field_name和fordon.field_name呢。您现在有一个错误,因为您正在使用SELECT*。通常最好只查询您想要的内容,尤其是在您开始连接表时。但我只是建议,你喜欢怎么做;
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 classified.*
FROM classified c
INNER JOIN fordon f ON c.classified_id=f..classified_id
WHERE classified.ad_id IN ('$solr_id_arr_imploded');