Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:尝试根据大小写选择表,收到错误代码:1241个操作数应包含1列_Mysql_Case - Fatal编程技术网

MySQL:尝试根据大小写选择表,收到错误代码:1241个操作数应包含1列

MySQL:尝试根据大小写选择表,收到错误代码:1241个操作数应包含1列,mysql,case,Mysql,Case,我正在尝试创建一个查询,该查询根据另一个表(oss)中特定项的当前值返回相关表(cld)-但是,当前接收到以下查询的“错误代码:1241操作数应包含1列”: SELECT CASE WHEN oss.`creative_link_data` IS NOT NULL THEN (SELECT * FROM `facebook_creative_link_data`) END FROM adgroup a JOIN `creative` c ON c.`parent_id` = a.`uuid`

我正在尝试创建一个查询,该查询根据另一个表(oss)中特定项的当前值返回相关表(cld)-但是,当前接收到以下查询的“错误代码:1241操作数应包含1列”:

SELECT 
CASE
WHEN oss.`creative_link_data` IS NOT NULL THEN (SELECT * FROM `facebook_creative_link_data`)
END 
FROM adgroup a
JOIN `creative` c ON c.`parent_id` = a.`uuid`
LEFT JOIN `facebook_object_story_spec` oss ON oss.`id` = c.`object_story_spec`
LEFT JOIN `facebook_creative_link_data` cld ON cld.`id` = oss.`creative_link_data`
WHERE TRUE
AND a.`uuid` = 12345
;
尝试仅从表中选择ID列会导致此错误“错误代码:1242 子查询返回多行“

但是,删除大小写并仅选择ID只返回1行


这是语法错误吗?是否有错误?

为避免与子查询结果相关的问题,应选择一列并将结果行数限制为1

  SELECT 
    CASE
      WHEN oss.`creative_link_data` IS NOT NULL THEN (
        SELECT ID
        FROM `facebook_creative_link_data`
        LIMIT 1)
  END 
  FROM adgroup a
  JOIN `creative` c ON c.`parent_id` = a.`uuid`
  LEFT JOIN `facebook_object_story_spec` oss ON oss.`id` = c.`object_story_spec`
  LEFT JOIN `facebook_creative_link_data` cld ON cld.`id` = oss.`creative_link_data`
  WHERE TRUE
  AND a.`uuid` = 12345
  ;
无论如何,case条件应该是使用内部联接的结果

SELECT *
FROM adgroup a
JOIN `creative` c ON c.`parent_id` = a.`uuid`
LEFT JOIN `facebook_object_story_spec` oss ON oss.`id` = c.`object_story_spec`
INNER  JOIN `facebook_creative_link_data` cld ON cld.`id` = oss.`creative_link_data`
WHERE TRUE
AND a.`uuid` = 12345
;

在子查询中,您试图获取多个行,但它包含多个列。所以你应该像这样使用-
selectid fromFacebook\u creative\u link\u data Limit 1