给定以下SQL表:
管理员:
id Name rating
1 Jeff 48
2 Albert 55
3 Ken 35
4 France 56
5 Samantha 52
6 Jeff 50
Run Code Online (Sandbox Code Playgroud)
会议:
id originatorid Assitantid
1 3 5
2 6 3
3 1 2
4 6 4
Run Code Online (Sandbox Code Playgroud)
我想根据Ken的观点(id = 3)生成一个表,因此他的id可能出现在会议表中的两个不同列中.(由于我引入了两个不同的字段列,因此语句IN不起作用).
因此输出将是:
id originatorid Assitantid
1 3 5
2 6 3
Run Code Online (Sandbox Code Playgroud)
如果你真的只需要知道Ken的id是哪一列,你只需要一个OR.以下将完全生成您的示例输出.
SELECT * FROM Meetings WHERE originatorid = 3 OR Assistantid = 3;
Run Code Online (Sandbox Code Playgroud)
如果您需要将复杂的路径和列表名称与会议一起使用,则OR在您的join ON子句中应该可以使用:
SELECT
Administrators.name,
Administrators.id,
Meetings.originatorid,
Meetings.Assistantid
FROM Administrators
JOIN Meetings
ON Administrators.id = Meetings.originatorid
OR Administrators.id = Meetings.Assistantid
Where Administrators.name = 'Ken'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1245 次 |
| 最近记录: |