Mysql 如果字段不为null,我需要使用if-then-else执行sql来连接表?

Mysql 如果字段不为null,我需要使用if-then-else执行sql来连接表?,mysql,sql,Mysql,Sql,我需要一个sql语句,它会给我这样的东西,如果一个字段为空,它不会进行连接 SELECT AdminID,tblapartments.NameNo, tblgarages.GarageID, tblclients.Name FROM tbladmin,tblclients,tblgarages,tblapartments WHERE tblclients.ClientID =tbladmin.ClientID AND IF (tbladmin.ApartmentID != null) { tbl

我需要一个sql语句,它会给我这样的东西,如果一个字段为空,它不会进行连接

SELECT AdminID,tblapartments.NameNo, tblgarages.GarageID, tblclients.Name FROM tbladmin,tblclients,tblgarages,tblapartments WHERE tblclients.ClientID =tbladmin.ClientID AND
IF (tbladmin.ApartmentID != null)
{
tblapartments.ApartmentID = tbladmin.ApartmentID
}
AND If(tbladmin.GarageID != Null)
{
tblgarges.GarageID = tbladmin.GarageID
}

您可以使用
LEFT JOIN
s,当另一个表中不存在连接的列时,结果是大量
NULL
字段:

SELECT AdminID,tblapartments.NameNo, tblgarages.GarageID, tblclients.Name
FROM tbladmin
INNER JOIN tblclients
  ON tbladmin.ClientID = tblclients.CliendID
LEFT JOIN tblgarages
  ON tbladmin.GarageID = tblgarages.GarageID
LEFT JOIN tblapartments
  ON tbladmin.ApartmentID = tblapartments.ApartmentID

您可以使用
LEFT JOIN
s,当另一个表中不存在连接的列时,结果是大量
NULL
字段:

SELECT AdminID,tblapartments.NameNo, tblgarages.GarageID, tblclients.Name
FROM tbladmin
INNER JOIN tblclients
  ON tbladmin.ClientID = tblclients.CliendID
LEFT JOIN tblgarages
  ON tbladmin.GarageID = tblgarages.GarageID
LEFT JOIN tblapartments
  ON tbladmin.ApartmentID = tblapartments.ApartmentID

除非我遗漏了什么,这应该只是一个外部连接

SELECT 
    AdminID,
    tblapartments.NameNo, 
    tblgarages.GarageID, 
    tblclients.Name 
FROM 
    tbladmin INNER JOIN tblclients ON tbladmin.ClientID = tblclients.ClientID
    LEFT OUTER JOIN tblgarages ON tbladmin.GarageID = tblgarages.GarageID
    LEFT OUTER JOIN tblapartments ON tbladmin.ApartmentId = tblapartments.ApartmentID

除非我遗漏了什么,这应该只是一个外部连接

SELECT 
    AdminID,
    tblapartments.NameNo, 
    tblgarages.GarageID, 
    tblclients.Name 
FROM 
    tbladmin INNER JOIN tblclients ON tbladmin.ClientID = tblclients.ClientID
    LEFT OUTER JOIN tblgarages ON tbladmin.GarageID = tblgarages.GarageID
    LEFT OUTER JOIN tblapartments ON tbladmin.ApartmentId = tblapartments.ApartmentID

我不相信这种类型的if逻辑是SQL标准的。您可能会在过程SQL语言中实现它,比如PL/SQL、plpgsql。。。不过要完成你想做的事后,我想左加入你应该看看

SELECT AdminID,tblapartments.NameNo, tblgarages.GarageID, tblclients.Name 
FROM tbladmin a 
join tblclients b on b.ClientID = a.ClientID
left join tblapartments c on c.ApartmentID = a.ApartmentID
left join tblgarges d on d.GarageID = a.GarageID

我不相信这种类型的if逻辑是SQL标准的。您可能会在过程SQL语言中实现它,比如PL/SQL、plpgsql。。。不过要完成你想做的事后,我想左加入你应该看看

SELECT AdminID,tblapartments.NameNo, tblgarages.GarageID, tblclients.Name 
FROM tbladmin a 
join tblclients b on b.ClientID = a.ClientID
left join tblapartments c on c.ApartmentID = a.ApartmentID
left join tblgarges d on d.GarageID = a.GarageID

我想你得到了很好的回应。你为什么不试一下我想你得到了很好的回应