[英]Using inner join and not in together in mysql
I have a wordpress database with default users table and two custom tables as below 我有一个带有默认用户表和两个自定义表的wordpress数据库,如下所示
1. wp_users
| id | display_name |
|----|--------------|
| 1 | Ibbs |
| 2 | Nina |
| 3 | rakib |
2. wp_invite
| post_id | user_id | status |
|---------|---------|----------|
| 3342 | 1 | accepted |
| 3342 | 2 | accepted |
| 3342 | 3 | accepted |
3. wp_rating
| id | reviwer | reviewed | post | know | skill | time | comm |
|----|---------|----------|------|------|-------|------|------|
| 2 | 3 | 1 | 3342 | b | b | b | b |
| 5 | 1 | 2 | 2122 | a | c | d | a |
| 7 | 2 | 3 | 3342 | d | a | b | c |
i want to select * from wp_invite where status = accepted
, display_name
from wp_users
and then want to exclude rows from the result where all of these three conditions meet 1. wp_invite.user_id
is not equal to wp_rating.reviewer
and 2. wp_invite.user_id
is not equal to wp_rating.reviewed
and 3. wp_invite.post_id
is not equal to wp_rating.post
. 我想
select * from wp_invite where status = accepted
, display_name
从wp_users
然后要排除从结果,其中所有这三个条件满足1行wp_invite.user_id
不等于wp_rating.reviewer
和2 wp_invite.user_id
是不等于wp_rating.reviewed
和wp_invite.post_id
不等于wp_rating.post
。
My desired output for post = 3342
and reviewer = 3
我想要的
post = 3342
输出post = 3342
, reviewer = 3
| user_id | display_name |
|---------|--------------|
| 2 | Nina |
| 3 | rakib |
My desired output for post = 3342
and reviewer = 2
我想要的
post = 3342
输出post = 3342
, reviewer = 2
| user_id | display_name |
|---------|--------------|
| 1 | Ibbs |
| 2 | Nina |
My desired output for post = 2122
and reviewer = 2
我想要的
post = 2122
输出post = 2122
, reviewer = 2
| id | display_name |
|----|--------------|
| 1 | Ibbs |
| 2 | Nina |
| 3 | rakib |
My desired output for post = 2122
and reviewer = 1
我想要的
post = 2122
输出post = 2122
, reviewer = 1
| id | display_name |
|----|--------------|
| 1 | Ibbs |
| 3 | rakib |
I have tried the following query but my output is empty: 我尝试了以下查询,但我的输出为空:
SELECT wp_invite.user_id, wp_users.display_name, wp_invite.post_id
FROM wp_invite
INNER JOIN wp_users ON wp_invite.user_id = wp_users.id
WHERE (status = 'accepted')
AND user_id NOT IN (SELECT reviewer FROM wp_rating)
AND user_id NOT IN (SELECT reviewed FROM wp_rating)
AND post_id NOT IN (SELECT post FROM wp_rating)
ID should be capitalized: inner join wp_users on wp_invite.user_id = wp_users. ID应该大写:wp_invite.user_id上的内部联接wp_users = wp_users。 ID
ID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.