我试图使用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_details
,company name
和{{1}的所有username
表格信息来自nickname
和company
表。所以它应该只显示一组结果。
这样我的sql连接查询看起来像这样:
users
但运气不好我没有得到我想要的东西。
答案 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);
答案 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 `