Php 可以在MYSQL JOIN语句中使用AND子句吗?

Php 可以在MYSQL JOIN语句中使用AND子句吗?,php,mysql,pdo,Php,Mysql,Pdo,我目前正在使用PDO进行数据库查询,我发现当我附加查询的“AND.IFC.location=:location”部分时,查询没有运行,当我已经使用查询连接两个表时,使用AND子句是否会导致问题?(表和IFC表) $location='1'; 回声“; $sql=“从IFC、表格中选择名称 其中IFC.tablename=tables.id和IFC.location=:location 由Numopinions DESC订购 "; $stmt=$dbh->prepare($sql); $stmt-

我目前正在使用PDO进行数据库查询,我发现当我附加查询的“AND.IFC.location=:location”部分时,查询没有运行,当我已经使用查询连接两个表时,使用AND子句是否会导致问题?(表和IFC表)

$location='1';
回声“;
$sql=“从IFC、表格中选择名称
其中IFC.tablename=tables.id和IFC.location=:location
由Numopinions DESC订购
";
$stmt=$dbh->prepare($sql);
$stmt->bindParam(“:location”,$location);
如果($stmt->execute())
{
$rows=$stmt->fetchAll();
打印(行);
}

是。您的查询应该可以工作,但正确的语法将使用显式的
JOIN


您认为查询不起作用有什么原因吗?

是的,也可以在联接中使用。如果您认为您的语句不起作用,请尝试在不准备语句的情况下使用,然后查看结果

$location= '1';

echo "<pre>";
$sql="SELECT name from IFC,tables
      WHERE IFC.tablename=tables.id AND IFC.location=:location
      ORDER BY Numopinions DESC 
      ";
$stmt= $dbh->prepare($sql);
$stmt->bindParam(":location", $location);

if($stmt->execute())
{
    $rows = $stmt-> fetchAll();
    print_r($rows);
}
SELECT name 
FROM IFC JOIN
     tables
     ON IFC.tablename = tables.id AND IFC.location = :location
ORDER BY Numopinions DESC;