我有3个表格,其中包含以下列:
表1:
userId | seriesId | content
表2:
followerId | followeeId
表3:
followerId | seriesId
我尝试做的事情是这样的:
SELECT Table1.content
FROM Table1
(INNER JOIN Table2 ON Table2.followeeId=Table1.userId WHERE Table2.followerId=X)
OR (INNER JOIN Table3 ON Table3.seriesId=Table1.seriesId WHERE Table3.followerId=X)
' X'将是一些动态生成的数字。我不确定这是否是正确的方法,但你得到了我正在努力做的事情?我的问题是,实现这样的事情的正确方法是什么?如果我的问题的任何部分不清楚,请在评论中告诉我。
答案 0 :(得分:2)
使用UNION
:
SELECT Table1.content
FROM Table1
INNER JOIN Table2 ON Table2.followeeId=Table1.userId
WHERE Table2.followerId=X
UNION
SELECT Table1.content
INNER JOIN Table3 ON Table3.seriesId=Table1.seriesId
WHERE Table3.followerId=X
答案 1 :(得分:2)
你也可以这样做..
SELECT Table1.content
FROM Table1
LEFT JOIN Table2 ON Table2.followeeId=Table1.userId
LEFT JOIN Table3 ON Table3.seriesId=Table1.seriesId
where Table2.followerId=X or Table3.followerId=X;
另一种方式是联盟
select table1.content
from table1
INNER JOIN Table2 ON Table2.followeeId=Table1.userId
where followerId = X
union
select table1.content
from table1
INNER JOIN Table3 ON Table3.seriesId = Table1.seriesId
where Table3.followerId = X;