如何合并具有相同字段的两个表行列,基于null而不是null并将结果合并为一行?

时间:2014-06-12 17:05:31

标签: php mysql codeigniter

我正在使用PHP& amp; MySQL几年了。有些日子我的查询有问题。请尽可能帮助......

我的情景

我有两张表如下:

TABLE1

| m_id | COL1 | COL2 | COL3 | COL4 |
|  1   |   1  |   0  |  0   |   1  |
|  2   |   0  |   1  |  0   |   0  |

TABLE2

| m_id | COL1 | COL2 | COL3 | COL4 |
|  2   |   1  |   0  |  0   |   0  |

根据我的项目情景,我必须把两个表放在同一列。 m_id 2 是表1中表1的引用。我需要使用以下行查询这些表:

查询结果

| m_id | COL1 | COL2 | COL3 | COL4 |
|  2   |   1  |   1  |  0   |   0  |

我需要根据null而不是null值比较两行的结果。我希望我能让你理解它!我把它绑了几天。我得到了一些使用 coalesce()函数的提示。但无法达到预期的结果!!!

2 个答案:

答案 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) ;

答案 1 :(得分:0)

看起来你需要操作" AND"对于列中的值。 如果是这样的话:

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