是否可以加入这些MySQL表格Attendee和Message?

时间:2017-06-21 16:39:52

标签: php mysql

所以我有这两个MySQL表。我正在尝试加入这两个陈述,以找出 TelNumber senderNo 与之关联:

enter image description here

enter image description here

我已尝试此查询,但它只返回具有关联参与者的消息,而不是在数据库上未注册关联 telNumber 的消息。

SELECT Attendee.`ownerName`, Attendee.`businessName`,Messages.`messageID`, Messages.`senderNo`, Messages.`messageContent`,Messages.`timestamp`,Messages.`type`,Messages.`viewed` 
FROM Messages 
INNER JOIN Attendee ON Messages.`senderNo`= Attendee.`telNumber` OR Attendee.emailAddress

或等于部分是因为 senderNo 还可以包含其中类型为电子邮件

的电子邮件地址

提前致谢。

2 个答案:

答案 0 :(得分:1)

  1. 您的查询结构不正确。在OR之后,它应该是

    Messages.senderNo = Attendee.emailAddress

  2. 要获取没有关联telNumber的消息,您需要使用LEFT OUTER JOIN而不是INNER JOIN

答案 1 :(得分:0)

您无法使用ddf1 = dd.from_pandas(test, 2) ddf2 = dd.from_pandas(test2, 2) dgr1 = ddf1.groupby('city') dgr2 = ddf2.groupby('city') meta = pd.DataFrame(columns=['Address1', 'score', 'idx']) dgr1.apply(lambda x: extract_one(x.Address1, dgr2.get_group(x.name).Address1), meta=meta).compute() Address1 score idx city U 0 234 kookie Pl 83 1 1 234 kookie Pl 28 1 X 0 123 chese wy 92 0 1 123 chese wy 28 0 将一列与两列进行比较,您需要分别进行两次比较并将其与OR联系起来。

OR

您还可以使用ON Messages.senderNo = Attendee.telNumber OR Messages.senderNo = Attendee.emailAddress 将值与多个内容进行比较:

IN

要获取没有匹配与会者的邮件,请使用ON Messages.senderNo IN (Attendee.telNumber, Attendee.emailAddress) 代替LEFT JOIN