如何使用几个 WHERE 搜索 MYSQL 数据库


How to search MYSQL database with a few WHEREs

编辑:

这是我的表格:

[user_friend] 表:

  • id, -user_id
  • friend_id
  • 时间

[迟到]表:

  • 编号
  • user_id
  • 原因
  • check_in_time

现在,假设当前用户的 id 是"1",我想user_friend表中搜索user_id为"1"的所有行,然后将所有friend_id user_id为"1"的行放在 var 或其他东西中(假设有 3 行,friend_id分别为 2,3 $ 4(。

现在我想获取后期表中行的 id,其中包含当前用户的任何朋友的 id 的user_id(在本例中为 2,3 和 4(。希望对你有帮助

更新

如果我正确理解您的新信息,这将从当前user_id = 1的user_friend表中选择一个friend_id列表。然后,它将使用此friend_id列表从出现这些friend_id late中选择所有这些条目。

SELECT * FROM late WHERE user_id IN (SELECT friend_id FROM user_friend where user_id=1);

您也可以使用表连接实现相同的目标。但这并不容易解释。

原始响应建议一种方法可能是使用WHERE IN (SUB SELECT)但这可能不是最有效的......这将取决于你的数据结构和数据量 - 但你没有提供足够的信息......

像这样:

SELECT * FROM late WHERE user_id IN (SELECT * FROM user_friends WHERE id IN (1,2,3));

正如我所说,肯定有更好的方法 - 但更多的信息会有所帮助。