我有两个单独的wordpress示例网站。一个是在获取woocommerce的过程中,另一个是已有的用户,他们有固定的组来访问课程。我想未来的课程应该通过商店出售。我要寻找的答案与wordpress本身无关,而是与sql有关。我知道的大多数数据是如何从一个表中获取的,或者通过轻微的连接获取的,但不是最后一步的数据。考虑以下几点:
用户表(多余但需澄清):
╔═════╦══════╗
║ UID ║ NAME ║
╠═════╬══════╣
║ 1 ║ Bob ║
║ 2 ║ Tom ║
║ 3 ║ Joe ║
║ … ║ … ║
╚═════╩══════╝
课程表:
╔═════╦═════════════════════╗
║ CID ║ COURSE ║
╠═════╬═════════════════════╣
║ 1 ║ Introductory Course ║
║ 2 ║ Trial Course ║
║ 3 ║ Actual Course 1 ║
║ … ║ … ║
╚═════╩═════════════════════╝
连接表将用户连接到n对n的课程:
╔═════╦═════╗
║ UID ║ CID ║
╠═════╬═════╣
║ 1 ║ 1 ║
║ 2 ║ 1 ║
║ 2 ║ 2 ║
║ 3 ║ 1 ║
║ 3 ║ 2 ║
║ 3 ║ 3 ║
║ … ║ … ║
╚═════╩═════╝
不会让你去查关系的,所以:
鲍勃上了入门课
汤姆(2)上了入门和试用课程
乔(3)有介绍,审判和至少一个“实际”的过程
入门课程什么都不给,试用课程给任何实际课程打折扣。如果有人已经有一个实际的过程中,折扣已被授予在过去。因此,在查询的结果中,我只查找那些拥有试用课程(也可以选择入门课程)的用户ID,但不查找任何其他课程:
╔════╗
║ ID ║
╠════╣
║ 1 ║
║ 2 ║
╚════╝
显然,我不能从结果中排除与入门课程或试用课程不匹配的行,因为这仍然会给我提供可能附加了其他课程的用户标识。
我忍不住想我错过了一个明显简单的解决方案。
2条答案
按热度按时间wlsrxk511#
据我所知,你需要一个uid,其中不在3实际课程1,我假设4是实际课程2,依此类推。
但通常有不同的介绍卷和不同类别的试验课程,取决于大学。
所以我认为你必须重新考虑你的策略,或者让我们看看你是如何处理这个问题的
db<>在这里摆弄
yftpprvb2#
我想你想要:
第一个
having
条件检查用户是否有试用课程。第二,他们没有非试用或入门课程。