MYSQL查询 - 从2个表中获取和检查数据

时间:2016-10-26 13:04:06

标签: php mysql

我有一个表名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

2 个答案:

答案 0 :(得分:0)

检查joindocumentation

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