设置为空字符串值,而不是空的结果我有以下查询MySQL的 - 使查询返回嵌套查询
SELECT * FROM (
(SELECT value FROM table_a WHERE link_id = (SELECT id FROM table_b WHERE col_id=1 and somefield='some_text')) as item1,
(SELECT value FROM table_a WHERE link_id = (SELECT id FROM table_c WHERE col_id=7 and somefield='some_other_text')) as item2,
(SELECT value FROM table_a WHERE link_id = (SELECT id FROM table_m WHERE col_id=121 and somefield='more_text')) as item3
)
如果所有内选择返回的东西都工作正常,但是如果内选择的人做不返回任何东西,那么整个查询不会返回任何东西。
有什么我可以添加到查询,以便如果其中一个内部选择没有返回的东西,然后在它的位置返回一个空字符串?
因此,例如第一个查询可能返回value ='返回值a',第二个可能返回'value b',然后第三个返回'',即空字符串,因为没有找到行。那么这将返回一个结果与3列设置 -
'returning value a' ,'value b',''
此查询的整点是,我想要一个结果集,它从一些目前存在的表的返回值。这些内部选择是根据参数从php动态创建的,因此它们将是任意数量的不同选项。
如果查询可以更好地写我很高兴,只要我得到来自各内选择或空字符串的值设置,如果选择不返回任何结果去改变它
究竟是你想实现的,因为你的查询显得如此搞砸了!?从'table_b'中,你已经知道了id,没有什么意义,为什么你要从那里再次获取记录? – Shef
然后向我们提供完整详细的点查询,以便我们可以了解到底要达到什么目的,并且可能提供更好的方法来实现。或者只是想出你想要的。您提供的查询没有太大意义,因为它可以用更简单的方法完成。 – Shef
我已经重写了这个问题,希望能够更好地解释这个问题 – John