簡體   English   中英

將第二個 MySQL 表中的數據添加到第一個表的結果中

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

dbfiddle.uk 上的演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM