Php 如何基于null和NOTNULL将具有相同字段的两个表行和列合并为一行?

Php 如何基于null和NOTNULL将具有相同字段的两个表行和列合并为一行?,php,mysql,codeigniter,Php,Mysql,Codeigniter,几年来,我一直在使用PHP和MySQL开发基于Web的应用程序。几天来,我对我的查询一直有问题。如果可能的话请帮忙 我的情景 我有两张表,如下所示: 表1 表2 根据我的项目场景,我必须将两个表放在同一列中。m_id 2是表1中表2中的参考。我需要查询这些结果为以下行的表: 查询结果 我需要根据null和notnull值比较两行的结果。我希望我能让你理解!我把这捆了好几天。我得到了一些使用合并函数的提示。但无法达到预期的结果 您可以这样做: SELECT COALESCE (a.col1,

几年来,我一直在使用PHP和MySQL开发基于Web的应用程序。几天来,我对我的查询一直有问题。如果可能的话请帮忙

我的情景

我有两张表,如下所示:

表1

表2

根据我的项目场景,我必须将两个表放在同一列中。m_id 2是表1中表2中的参考。我需要查询这些结果为以下行的表:

查询结果


我需要根据null和notnull值比较两行的结果。我希望我能让你理解!我把这捆了好几天。我得到了一些使用合并函数的提示。但无法达到预期的结果

您可以这样做:

SELECT 
  COALESCE (a.col1, b.`col1`) AS col1,
  COALESCE (a.col2, b.`col2`) AS col2,
  COALESCE (a.col3, b.`col3`) AS col3,
  COALESCE (a.col4, b.`col4`) AS col4 
FROM
  a 
INNER JOIN b 
ON (a.id = b.id) ;

看起来您需要对列中的值执行操作和。 如果是:

| m_id | COL1 | COL2 | COL3 | COL4 | | 2 | 1 | 0 | 0 | 0 | | m_id | COL1 | COL2 | COL3 | COL4 | | 2 | 1 | 1 | 0 | 0 |
SELECT 
  COALESCE (a.col1, b.`col1`) AS col1,
  COALESCE (a.col2, b.`col2`) AS col2,
  COALESCE (a.col3, b.`col3`) AS col3,
  COALESCE (a.col4, b.`col4`) AS col4 
FROM
  a 
INNER JOIN b 
ON (a.id = b.id) ;
SELECT Table1.m_id, (Table1.COL1 AND Table1.COL2) AS COL1 /* ,same for the rest of the columns */ FROM Table1 LEFT JOIN  Table2 ON Table1.m_id=Table2.m_id