在3个表上进行连接

时间:2015-10-01 15:40:20

标签: mysql join

我有3个sql表

1)包含优惠券标题的表格 - 其id等于第二张表格的ID

2)包含优惠券详情的表格 - 此表格中的user_id等于第三张表格的用户ID

3)包含用户详细信息的表

到目前为止,我有这个查询

"SELECT kpn_processed_deals.kpn_id,
kpn_processed_deals.purchased_date, kpn_processed_deals.claim, 
kpn_processed_deals.uid,kpn_deal_headers.kpn_type,
kpn_deal_headers.title,kpn_deal_headers.created_by
 FROM kpn_processed_deals INNER JOIN kpn_deal_headers ON
 kpn_processed_deals.kpn_id = kpn_deal_headers.kpn_id AND 
kpn_deal_headers.created_by = '$var'";

这很好用但是我希望使用连接在第三个表上获取用户电子邮件的值,但到目前为止我还没有成功。对不起,如果我的格式很混乱。我对这些事情很恐怖。

1 个答案:

答案 0 :(得分:1)

只需添加其他JOIN

"SELECT p.kpn_id, p.purchased_date, p.claim, p.uid,h.kpn_type, h.title, h.created_by, u.email
 FROM kpn_processed_deals AS p INNER
 JOIN kpn_deal_headers AS h ON p.kpn_id = h.kpn_id
 JOIN kpn_deal_users AS u ON u.user_id = p.user_id
 WHERE h.created_by = '$var'";

另请注意表别名的使用,因此您不必在整个查询中重复详细的表名。

单个表的约束通常应该在WHERE子句中; ON子句用于与连接表相关的条件(异常在外连接中,子表的约束也需要在ON子句中)。