我一直試圖加入來自兩個不同表的所有行。我試過聯合和左連接。加入來自兩個不同表的所有行MySQL
現在我剛剛使用兩個單獨的查詢,並有一個接一個顯示。我想合併兩個查詢以同時顯示。
表1被稱爲'批准',表2被稱爲'評論'。
批准
- ID
- 帖子ID
- postUserID
- 用戶ID評論
- ID
- 帖子ID
- postUserID
- 用戶ID
- 評
- date
我一直試圖加入來自兩個不同表的所有行。我試過聯合和左連接。加入來自兩個不同表的所有行MySQL
現在我剛剛使用兩個單獨的查詢,並有一個接一個顯示。我想合併兩個查詢以同時顯示。
表1被稱爲'批准',表2被稱爲'評論'。
批准
- ID
- 帖子ID
- postUserID
- 用戶ID評論
- ID
- 帖子ID
- postUserID
- 用戶ID
- 評
- date
您可以插入您正在使用的SQL嗎? Union將組合這兩個表,一個連接將反過來從表中獲取所有行併合並所有關聯的行。 JOIN默認爲內部聯接。 UNION實際上將結合兩個表格的結果。如果您希望所有行都可以a,並且表b中的相應註釋使用左連接。
根據您的表,它看起來像你可以JOIN
表:
select *
from approves a
inner join comments c
on a.userid = c.userid
and a.postid = c.postid
我猜,你將需要加入的基礎上postid
和userid
多列的表。
我使用了一個INNER JOIN
,它將返回兩個表之間的所有匹配行。如果只想返回表中的那些記錄,則可以使用LEFT JOIN
。如果你需要幫助學習連接語法,這裏是一個很棒的visual explanation of joins。
您可以使用UNION
,但必須爲每個表選擇希望的列,因爲每個查詢中的UNION
的列數必須相等。所以UNION
是:
select id, postid, postUserId, userId, null as comment, null as date, 'approves' as Src
from approves
union all
select id, postid, postUserId, userId, comment, date, 'comments' as src
from comments
通知稱爲src
可用於確定從數據來幹什麼表。
試過這個,我得到了一個布爾錯誤,當我使用mysql_fetch_assoc mysql_query(「SELECT * FROM批准INNER JOIN註釋c ON a.userID = c.userID AND a.postID = c.postID WHERE postUserID ='$ userID'&& userID!='$ userID'ORDER BY id DESC LIMIT 0,10「); –
@IanQuinn我不確定錯誤是什麼,但我還包括一個'UNION'版本來返回數據 – Taryn
的例子,你能後的表結構?很難弄清楚什麼表會加入沒有任何細節 – Taryn
@IanQuinn編輯你的原始問題併發布表結構在那裏,不要把它放在評論 – Taryn