【问题标题】:#1054 - Unknown column 'ord' in 'field list'#1054 - '字段列表'中的未知列'ord'
【发布时间】:2015-05-13 16:20:20
【问题描述】:

我正在使用 mySQL。

当我尝试将参数添加到应该对我的结果进行排序的 SQL 查询中时出现错误:

1054 - '字段列表'中的未知列 'ord'

SELECT tkt.* , ord = 0 
            FROM tkts_follows AS t2f 
            JOIN tkts_topics AS tkt ON (t2f.tktID = tkt.id 
                                    AND t2f.type = 'pin' 
                                    AND t2f.userID = 1 )
            UNION ALL 
            SELECT * , ord = 1 
            FROM tkts_topics AS tkt
            WHERE  (1=1 ) AND NOT EXISTS (SELECT * 
                    FROM tkts_follows AS t2f 
                            WHERE t2f.tktID = tkt.id AND t2f.type = 'pin' AND t2f.userID = 1) 
                            ORDER BY ord, last_update DESC LIMIT 0, 10
             

【问题讨论】:

  • 选择中的ord = 0 是什么?
  • 我用来对结果进行排序的新参数 - @AbhikChakraborty
  • “参数”是什么意思

标签: php mysql


【解决方案1】:

看起来你正在设置一些订购号,它需要是

SELECT tkt.* , 0 as ord
FROM tkts_follows AS t2f 
JOIN tkts_topics AS tkt ON t2f.tktID = tkt.id 
AND t2f.type = 'pin'
AND t2f.userID = 1 
UNION ALL 
SELECT * , 1 as ord 
FROM tkts_topics AS tkt
WHERE  1=1  AND NOT EXISTS (
SELECT 1 
FROM tkts_follows AS t2f 
WHERE t2f.tktID = tkt.id AND t2f.type = 'pin' AND t2f.userID = 1
) 
ORDER BY ord, last_update DESC LIMIT 0, 10

【讨论】:

    【解决方案2】:

    应该是“0 AS ord”或“1 AS ord”。此外,在对 UNION ALL 进行排序时,我建议将所有内容放在子查询中并对结果进行排序,因为对 UNION 进行排序会产生意想不到的结果。

    SELECT
        *
    FROM (
        SELECT
            tkt.*
            , 0 AS ord
        FROM tkts_follows AS t2f 
            JOIN tkts_topics AS tkt ON t2f.tktID = tkt.id
                AND t2f.type = 'pin'
                AND t2f.userID = 1
        UNION ALL 
        SELECT
            *
            , 1 AS ord
        FROM tkts_topics AS tkt
        WHERE  (1=1)
            AND NOT EXISTS (
                SELECT * 
                FROM tkts_follows AS t2f 
                WHERE t2f.tktID = tkt.id
                    AND t2f.type = 'pin'
                    AND t2f.userID = 1
            ) 
    ) AS UNIONS
    ORDER BY ord, last_update DESC
    LIMIT 0, 10
    

    【讨论】:

      猜你喜欢
      • 2020-10-27
      • 2018-10-21
      • 1970-01-01
      • 2021-01-26
      • 2014-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      相关资源
      最近更新 更多