1

我有两张桌子公司和联系方式。我正在尝试从公司获取公司名称,并从 contactdetails 获取某些联系方式。我$id =$_GET['id'];用来获取 id 。在 contactdetails 我有 fk_firm_id 这是我的外键。我不确定如何使用内部连接查询。我正在尝试以下查询:

$sql="SELECT  firm.`name` ,`address_physical_line_1` , `fax_1` , `phone_1` 
FROM contactdetails JOIN firm ON contactdetails.fk_firm_id='$id'";
echo $sql;
$result = mysql_query($sql);

但我没有找到正确的公司。任何人都可以帮我解决这个问题,拜托。

4

6 回答 6

1

您缺少将结果集限制为仅您感兴趣的公司的 WHERE 子句;现在,您将通过一个联系方式记录让所有公司加入。

.. where firm.id=$id

对于新应用程序,请使用已准备好语句的数据库 API,例如 mysqli 或 pdo。

于 2013-08-12T08:30:14.133 回答
1

这是假设您的公司表有一个名为 id 的主键

 $sql="SELECT  firm.`name` ,`address_physical_line_1` , `fax_1` , `phone_1` FROM contactdetails JOIN firm ON `contactdetails`.`fk_firm_id`=`firm`.`id`
    WHERE `firm`.`id` = '$id'";
    echo $sql;
    $result = mysql_query($sql);
于 2013-08-12T08:30:18.307 回答
1

JOINWHERE语句有一个错误:

$sql = "SELECT 
              f.name,
              c.address_physical_line_1, 
              c.fax_1, 
              c.phone_1 
        FROM 
              contactdetails c JOIN firm f ON c.fk_firm_id= f.id 
        WHERE c.id = '$id'";
于 2013-08-12T08:30:25.930 回答
1

你应该这样使用JOIN firm ON contactdetails.fk_firm_id = firm.id

$sql=" SELECT  firm.`name` ,`address_physical_line_1` , `fax_1` , `phone_1` 
       FROM    contactdetails 
       JOIN    firm ON contactdetails.fk_firm_id = firm.id
       WHERE   contactdetails.fk_firm_id = '$id'
     ";

$result = mysql_query($sql);
于 2013-08-12T08:30:42.010 回答
1
$sql="SELECT  firm.`name` ,`address_physical_line_1` , `fax_1` , `phone_1` FROM
contactdetails JOIN firm ON contactdetails.fk_firm_id=firm.id where 
contactdetails.fk_firm_id='$id'";

您应该加入公司的领域,例如firm.id

语法: FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2 compopr is : "=","<",">","<=",">=","<>"

于 2013-08-12T08:35:03.787 回答
0

使用以下查询进行内部联接

$sql="SELECT  firm.name ,address_physical_line_1 , fax_1 , phone_1 FROM 
contactctdetails  INNER JOIN firm ON contactdetails.fk_firm_id=$id"; 
于 2013-08-12T08:30:43.237 回答