簡體   English   中英

如何在另一個查詢中將SQL查詢結果用作列?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM