这个问题在这里已经有答案了:
如何在mysql中进行完整的外部连接(15个答案)
两年前关门了。
这里有两个表,每个表都有监督字段和用户id字段。我希望groupwise计数表和打印的每个监督如下。两个表都包含不同的数据。
计数也应仅用于指定的用户id。
表1列
+----+-------------+---------+
| id | supervision | user_id |
+----+-------------+---------+
| 1 | type1 | 2 |
| 2 | type1 | 2 |
| 3 | type2 | 1 |
| 4 | type1 | 2 |
| 5 | type2 | 2 |
+----+-------------+---------+
表2列
+----+-------------+---------+
| id | supervision | user_id |
+----+-------------+---------+
| 1 | type3 | 2 |
| 2 | type1 | 2 |
| 3 | type3 | 1 |
| 4 | type1 | 2 |
| 5 | type2 | 2 |
+----+-------------+---------+
为了 user_id=2
它应该给出如下输出:
+-------+--------+--------+
| Type | table1 | table2 |
+-------+--------+--------+
| type1 | 3 | 2 |
| type2 | 1 | 1 |
| type3 | 0 | 1 |
| .... | | |
+-------+--------+--------+
现在,我尝试了这个查询,它为表1提供了正确的结果,而不是表2。
select t1.supervision,
count(t1.supervision) AS table1,
count(t2.supervision) AS table2 from table1 t1
LEFT JOIN
table2 t2 ON t1.id=t2.id
where t1.userid=2 AND t2.userid=2
group by t1.supervision
1条答案
按热度按时间xpcnnkqh1#
这假设users表存在。您遇到的问题是type3在t1中不存在,因此左连接不会包含来自那里的值,并且您是在id而不是user\ id上连接的。