MySql查询连接返回结果,列为空

MySql查询连接返回结果,列为空,mysql,join,Mysql,Join,您好,我有这个查询,我希望它还返回表j(工作卡)中的行,其中j.articleId、j.statusId、j.hcwsId、j.gpId为null。有任何帮助吗 SELECT jobcardId,createDateTime,jobNo,companyId, customerId,serialNo,rsvdDate,model,promiseDate, readyDate,deliveryDate

您好,我有这个查询,我希望它还返回表j(工作卡)中的行,其中j.articleId、j.statusId、j.hcwsId、j.gpId为null。有任何帮助吗

SELECT jobcardId,createDateTime,jobNo,companyId,
                         customerId,serialNo,rsvdDate,model,promiseDate,
                         readyDate,deliveryDate,cashMemoNo,dealer,
                         dop,status,warrantyCardno,batchNo,
                         employeeId,hcws,gp,cdId,
                         collectionDate,remarks,article 
                FROM jobcard j, articles a, statuses s, hcws h, gp g
                WHERE j.articleId=a.articleId AND
                      j.statusId = s.statusId AND
                      j.hcwsId = h.hcwsId AND
                      j.gpId=g.gpId"

使用
左连接
。您现在的查询有效地充当了一个
内部联接
,排除了不匹配的行。使用LEFT JOIN,您将返回jobcard中的所有行,如果其他表中的列不包含匹配的记录(即jobcard包含该列的
NULL
),则将这些列返回
NULL


这些列没有得到
NULL
值,因为内部联接将它们排除在外-它们与其他表中的任何内容都不匹配

要包含空值,请使用外部联接:

SELECT jobcardId,createDateTime,jobNo,companyId,
  customerId,serialNo,rsvdDate,model,promiseDate,
  readyDate,deliveryDate,cashMemoNo,dealer,
  dop,status,warrantyCardno,batchNo,
  employeeId,hcws,gp,cdId,
  collectionDate,remarks,article 
FROM jobcard j
LEFT OUTER JOIN articles a ON j.articleId=a.articleId
LEFT OUTER JOIN statuses s ON j.statusId = s.statusId
LEFT OUTER JOIN hcws h ON j.hcwsId = h.hcwsId
LEFT OUTER JOIN gp g ON j.gpId=g.gpId

您的意思是
jobcard
具有实际的空值,还是其他表中的行没有匹配项?我的意思是,我想要jobcard表中的所有行,即使它们为空。因为最初我不把ID放在工作卡列中(articleid,statusid…)。。。它只返回这些列不为null的行要简单,我需要jobcard表中j.articleId=a.articleId和j.articleId=null的记录请尝试阅读关于左联接的信息。这里:@RelevantUsername如果你不使用左连接,它将对
文章中的每一行执行叉积,这可能不是他想要的。我应该知道这一点:D thanxxxx(Y)
SELECT jobcardId,createDateTime,jobNo,companyId,
  customerId,serialNo,rsvdDate,model,promiseDate,
  readyDate,deliveryDate,cashMemoNo,dealer,
  dop,status,warrantyCardno,batchNo,
  employeeId,hcws,gp,cdId,
  collectionDate,remarks,article 
FROM jobcard j
LEFT OUTER JOIN articles a ON j.articleId=a.articleId
LEFT OUTER JOIN statuses s ON j.statusId = s.statusId
LEFT OUTER JOIN hcws h ON j.hcwsId = h.hcwsId
LEFT OUTER JOIN gp g ON j.gpId=g.gpId