簡體   English   中英

php mysql UNION ALL-從單獨的表獲取ID

[英]php mysql UNION ALL - get id from seperate tables

想知道是否有什么可以說明一下,或者請幫忙。

我正在做一個時間軸,效果很好,但是我正嘗試使其變得如此以便它也添加了圖片...努力尋找解決方案,我將盡我所能地保持清晰。 UNION ALL在獲取和顯示我需要的信息方面做得很好,但是,當我嘗試從圖像表中獲取該事件的圖像時,該圖像表卻保留了我被卡住的路徑。

表格示例(非實際表格):

論壇

|id.....|memberid.|Descrip....|date....|

|71.....|1........|Hello all..|date....|

|82.....|5........|Hows you...|date....|

會員

|id.....|memid....|username...|date....|

|1......|1........|Steve......|date....|

|2......|5........|Donna......|date....|

圖片

|id.....|memid....|image     

|47.....|1........|images/stevepic.png|

|139....|5........|images/donnapic.png|

好的,因為代碼如下,所以顯示的信息完全沒有問題:)

SELECT id as timeline_id, date_time as timeline_date, thread_title as 
timeline_title, post_body as timeline_body FROM forum_posts
UNION ALL
SELECT memid as timeline_id, lastlogin as timeline_date, memusername as 
timeline_title, town as timeline_body FROM members

我一直在上網,而Stack Overflow我一直在想我需要做一個左聯接,我可能錯了,我不確定,但是那是我認為正確的方法。

當我在下面執行“左聯接”時,沒有頁面,只有空白。 錯誤日志:PHP警告:mysqli_fetch_array()期望參數1為mysqli_result

SELECT id as timeline_id, date_time as timeline_date, thread_title as 
timeline_title, post_body as timeline_body FROM forum_posts
UNION ALL
SELECT memid as timeline_id, lastlogin as timeline_date, memusername as 
timeline_title, town as timeline_body FROM members LEFT JOIN membersimages ON membersimages.memid = members.memid WHERE memid = %s

我要收集的是成員的ID,因為論壇部分沒有任何圖片,但是成員有,在時間軸上,我希望顯示成員圖片:)

我希望我已經解釋了我要實現的目標,並希望有人在我弄錯了的情況下向我指出正確的方向:)謝謝!

使用此解決方案:-

$sql = "select *
        from members as 'mem'
        inner join forum_posts as 'fp'
        on fp.memberid = mem.memid
        inner join images as 'img'
        on img.memid = mem.memid
        where 1" ;

上面的操作可以使所有記錄一次獲得,但是在輸出數組中將有重復的成員ID,因為一個成員將具有不同的帖子。 更好的方法是在內部聯接中使用“ members”和“ images”表(希望一個用戶將擁有一個配置文件圖像)並創建第二個sql,以獲取來自“ members”的每個成員ID的所有帖子。 希望以上解決方案對您有所幫助。 如果有任何錯誤,請通知我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM