[英]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.