[英]Add data from second MySQL table to the result from the first one
我有 2 张桌子:
+-----------+
| users |
+-----------+
| John |
| Peter |
| Alex |
+-----------+
和
+-----------+
| banned |
+-----------+
| John |
| Peter |
+-----------+
是否可以SELECT * FROM users
并将结果与第二个表结合起来以找出用户是否被禁止?
您可以使用LEFT JOIN
使用以下内容:
-- with CASE WHEN
SELECT users.*, CASE WHEN banned.username IS NULL THEN 0 ELSE 1 END AS isBanned
FROM users LEFT JOIN banned ON users.username = banned.username
-- without CASE WHEN (thanks to @forpas!)
SELECT users.*, banned.username IS NOT NULL AS isBanned
FROM users LEFT JOIN banned ON users.username = banned.username
如果用户与banned
表不匹配,则用户名(以及其他列)为NULL
。 您可以使用CASE WHEN
检查用户名是否为NULL
。
您还可以使用EXISTS
而不是LEFT JOIN
来获取以下附加信息:
SELECT *, EXISTS(SELECT 1 FROM banned WHERE users.username = banned.username) AS isBanned
FROM users
还有第三个选项使用IF
:
SELECT users.*, IF(banned.username IS NULL, 0, 1) AS isBanned
FROM users LEFT JOIN banned ON users.username = banned.username
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.