我有一个表名USERS,我存储了所有用户。我通过使用此查询获得了我想要的用户:
SELECT * FROM USERS WHERE username = 'Jack'
这很好用。
我还有一个名为" Activity"当我将用户存储在' s时。
我现在想做一个查询,我使用第一个查询选择用户,然后检查我是否已经从"活动"表
我的"活动" table的设置如下:
id(对于当前用户/我)
IdOtherUser(我正在关注的用户的ID)
类型(类型为'关注')
我知道这是可能的,但由于我对MYSQL很陌生,我似乎还没弄清楚,我还检查了其他类似问题,但没有发现任何有用的信息!
如果您已经知道任何好的答案,请告诉我们!
非常感谢任何帮助,并提前感谢任何有帮助的人!
可能的解决方案?
SELECT
*,
a.type
FROM USERS u
LEFT JOIN Activity a
ON a.idOtherUser = u.id AND a.id = 145
WHERE u.id = 86
答案 0 :(得分:0)
检查join
:
documentation
SELECT
u.id,
u.username,
a.type
FROM USERS u
LEFT OUTER JOIN Activity a
ON u.id = a.id
WHERE a.IdOtherUser = 139
检查这个,它应该工作正常:)如果你想知道这些是什么,你,它们只是在列名附近定义的别名。
IF语法:
IF(expression,expr_true,expr_false);
答案 1 :(得分:0)
您可以使用LEFT OUTER JOIN和GROUP BY来计算匹配数(可能是0),我们可以检查是否有活动: -
SELECT u.id,
u.name,
IF(COUNT(a.user_id) > 0, 'Activities', 'No Activities')
FROM users u
LEFT OUTER JOIN activity a
ON u.id = a.user_id
GROUP BY u.id, u.name