【问题标题】:mysql subquery ERROR [21000][1241] Operand should contain 1 column(s)mysql 子查询错误 [21000][1241] 操作数应包含 1 列
【发布时间】:2019-02-05 06:51:49
【问题描述】:

我有一张名为交易对手的表格。 我要查询这张桌子 像这样的:

SELECT (`name`, `mark`, `parent`, `description`) AS table_1 FROM (SELECT 
`name`, `mark`, `parent`, `description` FROM counterparty) AS table_2 WHERE 
(table_1.mark <> table_2.parent);

但是下面的错误显示:

[21000][1241] 操作数应包含 1 列

我该如何解决?

【问题讨论】:

    标签: mysql sql subquery


    【解决方案1】:

    您可以在下面尝试 - 使用 SELF JOIN

    SELECT table_1 .`name`, table_1.`mark`, table_1.`parent`, table_1 .`description` 
    FROM counterparty table_1 inner join counterparty table_2 
    table_1.mark <> table_2.parent;
    

    【讨论】:

    • 这个查询有效,但你能解释一下吗?我认为别名应该放在列名之后。像这样:SELECT (....) AS alias FROM (...)
    • @Sina,这是一个自联接,您可以在其中加入同一张表并比较您的 table1.marktable2.parent
    【解决方案2】:

    您写错了子查询,您可以使用 join 尝试如下方式

    SELECT  t1.* from table_1 t1    
     join  (SELECT 
    `name`, `mark`, `parent`, `description` FROM counterparty
           ) AS table_2 t2 on  t1.mark!=t2.mark
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      相关资源
      最近更新 更多