我有一个名为“连接”的表,其中包含以下字段:
entry_id
user_id
connector_id
cat_id
让我们放一些行
| entry_id | user_id | connector_id |cat_id |
|:---------|---------|:------------:|:------------:|
| 1 | 11| 33 | 1
| 2 | 13| 11 | 2
| 3 | 9| 11 | 4
| 4 | 11| 33 | 6
| 5 | 33| 11 | 11
| 6 | 9| 11 | 8
伪代码
(使用 id = 11 和 oid = 9 之间的连接)
Select cat_id FROM connections c
if cat_id is between 1 and 5
where c.connector_id = id OR c.user_id = id
AND c.connector_id = oid OR c.user_id = oid
else if cat_id is greater than 5
where oid = user_id and id = connector_id
用英语;
如果 cat_id 在 1 和 5 之间,它应该从 oid 和 id 都在 connector_id 或 user_id 中的地方选择 cat_ids,只要它们在一个或另一个中,不管是哪个顺序,但如果 cat_id 大于5,它应该只选择cat_ids,其中oid是user_id,id是connector_id。
结果(对于 id = 11 和 oid = 9 之间的连接)
| cat_id |
|:-----------|
| 4 |
| 8 |
再举一个例子:
结果(用于 id = 33 和 oid = 11 之间的连接)
| cat_id |
|:-----------|
| 1 |
| 6 |
请询问它们是否是不清楚的部分。