我有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'";
这工作得很好,但我想使用连接获取第三个表上用户电子邮件的值,但到目前为止我还没有成功。抱歉,如果我的格式很乱。我对这些事情感到恐惧。
最佳答案
只需添加另一个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
子句用于与连接表相关的条件(外连接是一个异常(exception),其中对子表的约束也需要位于 ON
子句中)。
关于mysql - 对 3 个表进行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32891631/