0

我有 3 个表,分别称为公司、客户和评论。首先我添加公司,然后将客户添加到客户表中,最后客户在评论表中添加评论。

这是公司表的结构:

id      company     type        address
1        abc       running      xyz
2        def       old          asd

这是客户表的结构:

cid company  customername  location
1     1       test           delhi
2     2       test1         noida

这是评论表的结构:

id  company     customer     comments
1         1          test       testcomments
2         2          test1       test1comments

现在我想按客户姓名、公司名称和位置在 cutomers 表中搜索,所以我尝试了这个,但无法获得关于搜索的评论的价值,我该如何实现它。

这是我对公司名称和位置的搜索查询:

$sql = mysql_query("Select * from customers AS cust INNER JOIN company AS comp ON cust.company = comp.id where cust.name like '%$term%' or cust.location like '%$term%' or comp.company like '%$term%'");
4

2 回答 2

0
    SELECT * from customers AS cust INNER JOIN company AS comp ON cust.company=comp.id
    INNER JOIN comments AS com ON com.company = comp.id WHERE ....... 

    (where cust.name like '%$term%' or cust.location like '%$term%' or comp.company like '%$term%')

希望这可以帮助。根据需要替换 WHERE 过滤器。

于 2013-09-12T08:08:03.347 回答
0

如果您的意思是要检索哪个客户发表的评论,那么这是一个答案:

$sql=mysql_query("select companies.company, customers.customername,
comments.comments from companies,customers,comments
where customers.cid=companies.id and comments.customer=customers.customername");

但请注意,您必须重新定义表关系,外键应该是 id,而不是名称,除非您重新定义表关系并删除不必要的字段,否则我的答案不会是最佳的。你可以找到很多关于数据库设计和规范化规则的信息

于 2013-09-12T08:11:45.087 回答