Php 在多个查询中使用WHERE
这是基于搜索引擎的 我收到重复的搜索结果从这个Php 在多个查询中使用WHERE,php,duplicates,where,multiple-tables,Php,Duplicates,Where,Multiple Tables,这是基于搜索引擎的 我收到重复的搜索结果从这个 $construct ="SELECT * FROM Rating, Attraction WHERE $construct" ; 然后我被告知,它正在选择所有结果和行,因此重复它,所以我使用了来自另一个页面的查询,并在底部添加了相关的WHERE $construct = "SELECT Attraction.*, Type.TypeName, Rating.RatingUrl "; $construct .= "FROM Attractio
$construct ="SELECT * FROM Rating, Attraction WHERE $construct" ;
然后我被告知,它正在选择所有结果和行,因此重复它,所以我使用了来自另一个页面的查询,并在底部添加了相关的WHERE
$construct = "SELECT Attraction.*, Type.TypeName, Rating.RatingUrl ";
$construct .= "FROM Attraction ";
$construct .= "INNER JOIN Type ON Attraction.Type = Type.TypeID ";
$construct .= "INNER JOIN Rating ON Attraction.AttractionID = Rating.AttractionID ";
$construct .= "WHERE Attraction = '$construct' ";
如果我的结构正确,它将无法工作,并且无法识别查询
$construct是一个用于将关键字与数据库匹配的查询存储查询的变量称为
$construct
,您还将其包含在最后一行“其中Attraction='$construct'”
,因此您实际上将前4行包含在最后一行中,这不会产生预期的结果
也许重命名查询变量使其工作就足够了
另外,如果您不想重复,只需使用DISTINCT
SELECT DISTINCT * FROM Rating, Attraction WHERE $construct
我相信是因为这个
$construct .= "WHERE Attraction = '$construct' ";
您使用的是同一个变量名吗?我不确定,但请按TypeID对用户分组可能是它的工作打印出查询的最终字符串,这样更容易看到错误,并告诉我们您使用的是哪种RDBMS,MySQL?在
WHERE Attraction='$Construct'
,Attraction是数据库字段还是表名?Attraction是表名。调试SQL问题时,最重要的信息位是:1)DBMS 2)实际的SQL代码。你两个都漏掉了。