如果查询没有相应的值,如何返回null值?

Vij*_*jay 1 mysql

我有一个查询

select c.name as companyname, u.name,u.email,u.role,a.date 
from useraccount u, company c, audittrial a 
where 
    u.status='active' 
    and u.companyid=c.id 
    and 
    (
        u.companyid=a.companyID 
        and a.activity like 'User activated%' 
        and a.email=u.email
    ) 
order by u.companyid desc 
limit 10
Run Code Online (Sandbox Code Playgroud)

所以,如果以下部分不满足,

(
    u.companyid=a.companyID 
    and a.activity like 'User activated%' 
    and a.email=u.email
)
Run Code Online (Sandbox Code Playgroud)

不会返回任何行..

但我想返回以下查询的结果

select c.name as companyname, u.name,u.email,u.role,a.date 
from useraccount u, company c, audittrial a 
where 
    u.status='active' 
    and u.companyid=c.id 
order by u.companyid desc 
limit 10
Run Code Online (Sandbox Code Playgroud)

但要添加,我应该返回日期(如果可用),如果日期不可用则返回空值.

我怎样才能做到这一点?

And*_*mar 5

结合where子句的多个表实际上是内连接:

select *  from table1, table2 where table1.id = table2.id
Run Code Online (Sandbox Code Playgroud)

是相同的

select *  from table1 inner join table2 on table1.id = table2.id
Run Code Online (Sandbox Code Playgroud)

要使审计跟踪可选,请将其更改为left join:

select  ...
from    useraccount u
join    company c
on      u.companyid = c.id
left join
        audittrial a
on      a.activity like 'User activated%' 
        and a.email = u.email
order by
        u.companyid desc 
limit   10
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我认为正确的拼写是审计TR AI