[英]How can I use a SQL query result as a column in another query?
我的观点可以在工作日返回。 结果将是WHERE子句中的一列,如下所示:
SELECT * FROM dvtv_delivery WHERE (SELECT day FROM dvtv_weekday) = 'Y'
例如:
今天是星期天,在dvtv_weekday返回SUN在dvtv_delivery中存在列SUN
Mysql中可能吗? 当我跑步时,什么也没出现
使用下面我用下,工作
SELECT * FROM dvtv_delivery WHERE SUN = 'Y'
任何答案都将真正有帮助! 对不起我的英语不好
结果将是WHERE子句中的一列
如果是这种情况(您想比较一列),则该列应属于同一查询。
SELECT
*
FROM dvtv_delivery
WHERE
day = 'Y'
假设子查询恰好返回一行,则将按书面形式执行查询:
SELECT *
FROM dvtv_delivery
WHERE (SELECT day FROM dvtv_weekday) = 'Y'
这样的查询是标量子查询 。 它必须返回一列,最多返回一行(在大多数情况下)。
通常,此类子查询与外部查询相关 。 这意味着WHERE
子句连接两个表中的值。 目前尚不清楚相关子句在这种情况下是什么样子,但是查询的结构是:
SELECT d.*
FROM dvtv_delivery d
WHERE (SELECT wd.day
FROM dvtv_weekday wd
WHERE wd.? = d.? -- maybe these would be date columns?
) = 'Y'
该查询:
SELECT day FROM dvtv_weekday
返回类似'SUN'
的字符串,而不是SUN
列的名称。
因此,WHERE等效于:
WHERE 'SUN' = 'Y'
它将始终不返回任何行。
您需要这样的东西:
SELECT * FROM dvtv_delivery
WHERE
CASE (SELECT day FROM dvtv_weekday)
WHEN 'SUN' THEN SUN
WHEN 'MON' THEN MON
WHEN 'TUE' THEN TUE
WHEN 'WED' THEN WED
WHEN 'THU' THEN THU
WHEN 'FRI' THEN FRI
WHEN 'SAT' THEN SAT
END = 'Y'
我假设表dvtv_delivery
具有所有这些列: SUN, MON, ....
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.