【问题标题】:MYSQL WHERE condition depends upon SELECT columnMYSQL WHERE 条件取决于 SELECT 列
【发布时间】:2012-05-27 09:32:51
【问题描述】:

是否可以引用回您在 WHERE 条件中选择的列?

我什至不知道如何在没有过多冗长的情况下提出这个问题,所以我将尝试将您指向“rated_user = @2User”部分并注意@2User 是我正在选择的内容。

SELECT id, user, minimum 
INTO @1ID, @1User, @minimum 
FROM table1 
WHERE a_or_b = 'a' AND item = itemName 
ORDER BY number DESC LIMIT 1;

SELECT id, user 
INTO @2ID, @2User 
FROM table1 
WHERE a_or_b = 'b' AND item = itemName 
    AND (SELECT IFNULL(AVG(rating),0) AS Rating 
            FROM table2 
            WHERE rated_user = @2User AND completed = 'y'
        ) >= @minimum_seller_rating 
ORDER BY number ASC LIMIT 1;

【问题讨论】:

  • 您不能直接使用原始列名并说where rated_user = user 吗?
  • 我不知道这是可能的。正在尝试...
  • 有效。谢谢。不想回答功劳?
  • @Thilo 只是给你一个便条,将你的答案作为答案发布,以便 Op 可以接受。
  • 如果您在外部查询中选择了某些内容,您可以在子查询中引用它,就像您在 where 子句中使用的那样

标签: mysql select where conditional-statements


【解决方案1】:

您也应该能够在子查询中使用父表中的原始列名。

WHERE rated_user = user 

如果存在名称冲突,您可能需要在其前面加上表名或别名。

WHERE rated_user = table1.user

【讨论】:

    猜你喜欢
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 2018-08-06
    • 1970-01-01
    • 2018-08-07
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多