0
我有兩個表提及並轉推連接兩個表中的Oracle
提及
ID USER_SCREEN_NAME USER_ID MENTIONED_USER_ID MENTIONED_USER_NAME
15 user1 1 9 user 9
16 user 1 1 60 user 6
18 user 3 3 60 user 6
17 user 4 4 60 user 6
轉推
ID USER_ID USER_SCREEN_NAME RETWEETED_STATUS_ID RETWEETED_USER_STATUS_ID RETWEETED_USER_NAME
19 3 user 3 400 40 user 4
11 1 user 1 38 60 user 6
15 2 user 2 500 50 user 5
13 4 user 4 38 60 user 6
我要的是與信息的單獨的表,如果用戶已提到或轉推或完成兩者都包含在表格中,所以輸出應該是這樣的(User_id(M)被提及的用戶ID並且User_ID(R)被轉推用戶ID)
USER_ID (M) USER_ID (R) USER_S_NAME MENTIONED_USER RETWEETED_USER
1 1 user 1 user 6 user 6
1 1 user 1 user 9 Null
3 3 user 3 user 6 Null
3 3 user 3 Null user 4
4 4 user 4 user 6 user 6
Null 2 user 2 Null user 5
但是我得到這個結果
USER_ID (M) USER_ID (R) USER_S_NAME MENTIONED_USER RETWEETED_USER
1 1 user 1 user 6 user 6
1 1 user 1 user 9 Null
3 3 user 3 user 6 Null
4 4 user 4 user 6 user 6
Null 2 Null Null Null
它工作正常提表,但不是轉推表 這裏是我的查詢
SELECT
MT.USER_ID AS USER_ID,
r.USER_ID AS USER__ID,
mt.USER_SCREEN_NAME AS USER_S_NAME,
mt.MENTIONED_USER_NAME AS MENTIONED_USER,
(
SELECT
RETWEET.RETWEETED_USER_NAME
FROM
RETWEET
WHERE
RETWEETED_USER_STATUS_ID = mt.MENTIONED_USER_ID
AND ROWNUM = 1
AND USER_ID = MT.USER_ID
) AS RETWEETED_USER
FROM
MENTIONS mt
FULL OUTER JOIN RETWEET r ON MT.USER_ID = r.USER_ID --where MT.M_USER_ID=r.O_USER_ID
GROUP BY
MT.USER_ID,
mt.USER_SCREEN_NAME,
r.USER_ID,
mt.MENTIONED_USER_NAME,
MT.MENTIONED_USER_ID,
r.RETWEETED_USER_STATUS_ID
ORDER BY
mt.USER_ID
最後兩列User_S_names丟失,因爲我們正在使用「mt」並採取提到的表columb是他們的方式來包括在一個列? :/ – melissa
調查['COALESCE()'](https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions023.htm#SQLRF00617) – Parfait
已經做到了。 coalesce工作:) – melissa