为什么我的查询没有返回任何结果?

Kar*_*rem 3 mysql sql join inner-join outer-join

为什么这个sql查询只显示结果,如果他们在users_warnings中只有一行?

SELECT 
 u.id, 
 uw.warning 
FROM 
 users u
 INNER JOIN users_warnings uw ON (
  u.id = uw.uID
 )
LIMIT 21
Run Code Online (Sandbox Code Playgroud)

我希望向所有用户显示,但也会抓取users_warnings中的"警告"列,如果有的话.

Mik*_*dge 6

因为您正在使用a inner join,这需要在连接表上存在一行.请尝试以下方法:

SELECT 
 u.id, 
 uw.warning 
FROM 
 users u
 LEFT JOIN users_warnings uw ON (
  u.id = uw.uID
 )
LIMIT 21
Run Code Online (Sandbox Code Playgroud)


Chr*_*cht 6

一个INNER JOIN只返回东西,如果有两个表中的数据.
尝试LEFT JOIN改为:

SELECT u.id, uw.warning FROM users u
            LEFT JOIN users_warnings uw ON (u.id = uw.uID)
            LIMIT 21
Run Code Online (Sandbox Code Playgroud)