使用基于id(cdid)的sql join查询从3个表中获取数据

时间:2014-06-30 09:04:19

标签: php mysql sql

我试图使用sql join查询从Mysql 3表中获取结果。当我运行它时,它会显示错误消息。喜欢:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in 
D:\software installed\xampp\htdocs\contact-management\getContactDetails.php on line 15

好吧,我有3张桌子。 1)公司2)contact_details 3)用户。

公司表(3)上的列:

cid, company_name, created_date

contact_details表上的列表(10):

cdid, family_name, given_name, work_phone, mobile_phone, email, email_private, 
user_id, cid, created_date.

用户列表():

user_id, username, nickname

所以我想做的是 .....我希望获得contact_detailscompany name和{{1}的所有username表格信息来自nicknamecompany表。所以它应该只显示一组结果。

这样我的sql连接查询看起来像这样:

users

但运气不好我没有得到我想要的东西。

4 个答案:

答案 0 :(得分:1)

首先,您的代码在contact_details INNER JOIN company ON contact_details.cid = company.$id 公司时出错。$ id 是查询的错误语法。

根据您的要求,

Rajavel D的查询是正确的。

您也可以尝试:

$innerjoing =  mysql_query("SELECT contact_details . * , company.company_name, users.nickname
    FROM contact_details
    LEFT JOIN users ON users.user_id = contact_details.user_id
    LEFT JOIN company ON company.cid = contact_details.cid
    WHERE contact_details.cdid = ".$id)

如果您还没有得到,请检查您的变量您传递给该功能的内容。 它应该是mysql_fetch_array($innerjoing);

Refer this as well

答案 1 :(得分:0)

你给$ id的方式是错误的并且查询:

试试这个:

("SELECT cd.*, c.company_name, u.nickname, u.username  
  FROM contact_details cd INNER JOIN user u 
       ON cd.user_id = u.user_id
          INNER JOIN company c on cd.cid=c.cid 
              where cd.cdid = " . $id )

答案 2 :(得分:0)

试试这个:

 $innerjoing =  mysql_query("
 SELECT cd.*, c.company_name, u.nickname
 FROM contact_details cd
 INNER JOIN user u on cd.user_id = u.user_id
 INNER JOIN company c on cd.cid = c.cid
 where c.cid = " + $id);

答案 3 :(得分:0)

select cd.*,company_name,username,nickname 
from 
    contact_details as cd 
left join 
    company as c
on 
    cd.cid = c.cid
left join 
    users as u
on 
    cd.user_id = u.user_id `