我有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'";
这很好用但是我希望使用连接在第三个表上获取用户电子邮件的值,但到目前为止我还没有成功。对不起,如果我的格式很混乱。我对这些事情很恐怖。
答案 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
子句中)。