这是三个表我:
电子邮件MySQL的棘手三重加入
+----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | emailID | int(11) | NO | PRI | NULL | auto_increment | | subject | varchar(100) | YES | | NULL | | | body | text | YES | | NULL | | | userID | int(11) | NO | | NULL | | | date | timestamp | YES | | NULL | | +----------+--------------+------+-----+---------+----------------+
人
+----------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+----------------+ | userID | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(50) | YES | | NULL | | | email | varchar(50) | NO | | NULL | | | relation | varchar(50) | YES | | NULL | | +----------+-------------+------+-----+---------+----------------+
toLine
+---------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+---------+------+-----+---------+-------+ | emailID | int(11) | NO | PRI | NULL | | | userID | int(11) | NO | PRI | NULL | | +---------+---------+------+-----+---------+-------+
字段emails.userID是发件人的ID,所以电子邮件来自谁。
我需要的是一个查询,它可以让我通过我发送的电子邮件(关系='研究员')到我的课程主管(关系='课程主任')。我不知道如何做连接,所以我可以用两种不同的方式使用关系字段。
我试着查询:
SELECT count(emails.emailID)
FROM emails
LEFT JOIN people ON emails.userID = people.userID
WHERE people.relation='researcher';
这让我所有我发来的电子邮件,但我无法找出如何进一步根据谁的电子邮件被发送到过滤下来。
如果您可以发布一些示例数据并尝试到目前为止会更好.. –