我正在運行一個mysql數據庫。我有兩個表分別存儲喜歡和評論。從兩個表中找出唯一的ID並從兩個表中找到相應的計數
喜歡錶:
+--------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| post_id | int(11) | NO | | NULL | |
| user_id | varchar(255) | NO | | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
+--------------+------------------+------+-----+---------+----------------+
評論表:
+--------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| post_id | int(11) | NO | | NULL | |
| user_id | varchar(255) | NO | | NULL | |
| comment | varchar(255) | NO | | NULL | |
| created_at | timestamp | YES | | NULL | |
| updated_at | timestamp | YES | | NULL | |
+--------------+------------------+------+-----+---------+----------------+
我需要獲得唯一的用戶ID和他們的喜好和評論數。
我跑下面的查詢:
select * from
(select user_id, count(*) as like_count from post_likes group by user_id) as a,
(select user_id, count(*) as comment_count from post_comments group by user_id) as b
limit 5
查詢了66秒1.8萬條記錄(這兩個表的組合)。另外,它沒有給出正確的結果。
如果我做了一個LEFT JOIN,它只返回來自左表的匹配記錄,而我需要兩個,即如果一個用戶ID只有喜歡和沒有評論或只有評論和不喜歡。
什麼我試圖得到的是這樣的:
+--------------+------------------+------+-----+---------+
| user_id | like_count | comment_count |
+--------------+------------------+------+-----+---------+
| 1 | 1213 | 310 |
| 2 | 1098 | 0 |
| 3 | 0 | 115 |
+--------------+------------------+------+-----+---------+
難道你沒有'user'表嗎? – HoneyBadger
我當然可以。我還沒有在這裏加入,因爲我只需要用戶的幫助。 – gentrobot