所以我有这两个MySQL表。我正在尝试加入这两个陈述,以找出 TelNumber senderNo 与之关联:
我已尝试此查询,但它只返回具有关联参与者的消息,而不是在数据库上未注册关联 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 还可以包含其中类型为电子邮件
的电子邮件地址提前致谢。
答案 0 :(得分:1)
您的查询结构不正确。在OR之后,它应该是
Messages.senderNo = Attendee.emailAddress
要获取没有关联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
。