我有两张桌子: -
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');
现在我将firstId
和secondId
,如果组合(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得到输出
如果可能的话,我在一个查询中需要这个。 任何帮助表示赞赏。
答案 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 ;