我有一個: PostTable:如何將子查詢的輸出追加到當前的主查詢中?
它具有VARCHAR 內容,以及INT 組ID
和JoinedGroupsTable:
它具有INT 用戶ID和INT GROUPID
在用戶加入時的基團,一個記錄被添加到具有用戶ID和GROUPID所述的groupId。
我想向數據庫發送一個查詢,以獲取具有用戶已加入的組ID的郵寄表的所有帖子。
這就是我想要做的事:
Select
posttable.Content
FROM
posttable, joinedgroupstable
WHERE posttable.GroupID =
(SELECT GROUP_CONCAT(joinedgroupstable.GroupID SEPARATOR " OR posttable.GroupID =")
FROM joinedgroupstable
WHERE joinedgroupstable.UserID=1)
這僅僅是一個示例代碼,它並沒有真正的工作,但因爲括號之間的最後部分。
這部分:
(SELECT GROUP_CONCAT(joinedgroupstable.GroupID SEPARATOR " OR posttable.GroupID =")
FROM joinedgroupstable
WHERE joinedgroupstable.UserID=1)
將輸出類似 「1 OR posttable.GroupID = 2 OR posttable.GroupID = 3」 等,這取決於基團id,它們相鄰的joinedgroupstable用戶,我希望它的輸出連接到主查詢,以便它成爲這樣的事情:
Select
posttable.Content
FROM
posttable, joinedgroupstable
WHERE posttable.GroupID =
1 OR posttable.GroupID =2 OR posttable.GroupID =3
所以加入子查詢的輸出到主查詢。我不知道這是否可能,並想知道是否有更簡單的方法。
使用in子句? (where)中的posttable.groupID或者WHERE中的posttable.groupID(SELECT GroupID FROM joinedgroupstable WHERE UserID = 1)' – xQbert
'好吧,謝謝,我想我會用這個語法而不是幾個從現在開始。 編輯:但是,我的主要問題是從JoinedGroupsTable(這是用戶'1'加入的groupIDs)生成「1,2,3」,然後將它們添加爲(1,2,3)到主查詢 – Krestek
看到我的答案格式來實現這一點。 – xQbert