【发布时间】:2013-11-22 11:07:54
【问题描述】:
问题
我有两个不同的表,表名为 team_request 和 teams。 [team_request] 拥有每个提交的团队的唯一记录,[teams] 保存具有唯一用户名但与 [team_request] 中相同的团队数据的重复记录对于接受加入该团队的用户。
以下查询的预期结果:
我正在运行以下查询来获取待处理的挑战或团队请求,它们的基本逻辑是从 [team_request] 中获取所有团队,而该团队在 中不存在[teams] 表或未被该用户忽略。
实际上查询在做什么:
它从属于该用户的表 [team_request] 中获取所有行(团队),无论用户是否已排除或忽略。
另外忘了在上面提到 fbC_status 是 [team_request] 中的一个字段,如果用户忽略加入团队,它会保存用户的电子邮件地址。
任何帮助或指导将不胜感激,我只是坚持下去。
MySQL 查询
SELECT *
FROM team_request
WHERE (c_emails LIKE '%joe@example.com%')
OR (c_emails LIKE '%9876543210%')
AND fbC_status NOT LIKE '%joe@example.com%'
AND fbC_status NOT LIKE '%9876543210%'
AND '%joe@example.com%' NOT IN
(SELECT username
FROM teams)
AND t_name NOT IN
(SELECT T.t_name
FROM team_request TR,
teams T
WHERE TR.t_name = T.t_name
AND T.username = '%joe@example.com%'
AND (TR.fbC_status NOT LIKE '%joe@example.com%'
AND TR.fbC_status NOT LIKE '%9876543210%'))
LIMIT 0, 30
【问题讨论】:
-
与
'%9876543210%'有什么关系?我是否正确地认为您正在尝试做的是:获取team_request但不在teams表中的记录,并且fbC_Status不包含电子邮件地址? -
是的,还有那个号码,这个号码是一个人的电话号码,因为我在构建 phonegap 应用程序时在 AJAX 中使用这个查询。所以是的,你是正确的,但它也是 获取在 team_request 但不在团队表中的记录,并且 fbC_Status 不包含电子邮件地址或电话号码对不起,我在问题中错过了这一点
-
我不想筛选。将一些适当的 DDL(和/或 sqlfiddle)与所需的结果集一起发布。另请注意,没有 ORDER BY 的 LIMIT 几乎毫无意义。