如果column为null,则从另一个表中获取数据

时间:2015-06-12 14:05:25

标签: mysql

我有两张桌子: -

tableA: -

CREATE TABLE tableA (
  firstId INT(6),
  secondId INT(6),
  product VARCHAR(30) default NULL,
  primary key (firstId, secondId)
)

tableB的: -

CREATE TABLE tableB (
  firstId INT(6),
  product VARCHAR(30) default NULL,
  primary key (firstId)
)

INSERT INTO `tableA` (
`firstId` ,
`secondId` ,
`product`
) VALUES ('1',  '10', 'hello'), ('1',  '11', NULL);

INSERT INTO `tableB` (`firstId`, `product`) VALUES ('1', 'original');

现在我将firstIdsecondId,如果组合(firstId和secondId)位于,我必须获取产品详细信息but condition is tableA然后从中获取产品详细信息,如果它为NULL,则从TableB获取有关firstId的产品详细信息。

例如: -

如果我firstID = 1且secondId = 10,那么hello shold得到输出

如果我有firstID = 1且secondId = 11,那么original shold得到输出

如果我firstID = 1且secondId = 12则original shold得到输出

如果可能的话,我在一个查询中需要这个。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您可以在mysql语句中编写控制流函数:

$first='1';$second='10';


SELECT IF( exists(select * FROM tableA WHERE  
tableA.firstId =  '$first' and tableA.secondId =  '$second'
and tableA.product!= 'NULL'),tableA.product, tableB.product )
FROM tableA, tableB ;