SQL从同一列收集数据,可能会有不同的结果

时间:2016-10-12 12:34:15

标签: sql mariadb

我目前遇到的问题是,如果Contact.email不同,那么它显示为NULL。如果我使用OR代替AND,它会获取两个电子邮件,但是在不同的行中,所以它们是重复的。

我认为我需要分配别名,但我不知道该怎么做。

SELECT Item.brought, Contact.email AS SalesContact, Contact.email AS TechContact
FROM Customer
LEFT JOIN Contact
ON Item.sales_id = Contact_id
AND Item.tech_id = Contact_id;

我要做的是将Item.brought与存储在不同表中的两个可能的电子邮件地址相关联。 任何建议都会有很大的预测。

非常感谢。

1 个答案:

答案 0 :(得分:0)

您正在阅读同一封电子邮件。您需要加入两次联系人,如下所示:

SELECT Item.brought, SC.email AS SalesContact, TC.email AS TechContact
FROM Customer
LEFT JOIN Contact SC
ON Item.sales_id = SC.Contact_id
LEFT JOIN Contact TC
ON Item.tech_id = TC.Contact_id;

说明:您需要两个Contact记录,这些记录不一定相同,因为您可以想象一个不是销售人员而且销售人员也不是技术人员的技术人员。因此,您正在使用Item.sales_id和使用Item.tech_id的技术人员加入销售人员。