gpt4 book ai didi

mysql - 使查询返回空字符串值而不是嵌套查询的空结果集

转载 作者:行者123 更新时间:2023-11-29 00:54:21 27 4
gpt4 key购买 nike

我有以下查询

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 = 'returning value a' 第二个可能返回 'value b' 然后第三个将返回 '' 即一个空字符串,因为没有找到行。然后这将返回一个包含 3 列的结果集 -

'returning value a' ,'value b',''

这个查询的重点是我想要一个结果集,它返回来自多个不同表的值。这些内部选择是根据参数从 php 动态创建的,因此它们将是任意数量的不同选项。

如果可以更好地编写查询,我很乐意更改它,只要我得到一个结果集,其中包含每个内部选择的值,或者如果选择不返回任何内容,则为空字符串

最佳答案

你有没有试过这样的事情:

SELECT `table_b`.* FROM `table_b`
LEFT JOIN `table_a` ON (`table_b`.`id`=`table_a`.`link_id`)
WHERE `table_a`.`link_id` IN (1,2,3);

使用 LEFT JOIN table_b 将返回具有 null 值的字段。

关于mysql - 使查询返回空字符串值而不是嵌套查询的空结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6857161/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com