簡體   English   中英

僅當滿足不同表中的條件時,才有任何方法可以執行SELECT嗎?

[英]Is there any way to execute a SELECT only if a condition in a different table is met?

有沒有辦法在單個查詢中做到這一點? 還是我必須從外部進行管理? 它不是任何一種JOIN。

SELECT
IF (
    (SELECT indicator FROM configuration_table) = 1,
    (SELECT series_id FROM series_table LIMIT 1),
    ''
) as if_exp
FROM
    series_table

這將執行,但是一遍又一遍地返回第一個ID,如果我取出LIMIT 1,它將無法正常工作,因為它只期望一個結果。 但是我需要的是,如果滿足此條件:

(SELECT indicator FROM configuration_table) = 1,

然后,我需要返回所有這些數據:

SELECT series_id, series_code, series_name FROM series_table

有可能嗎? 我應該做兩個查詢並管理來自php的數據嗎? 非常感謝你。

最簡單的方法是:

IF ((SELECT indicator FROM configuration_table) = 1) THEN
    SELECT series_id, series_code, series_name FROM series_table
END IF

當條件為假時,您沒有告訴我們該怎么做。 我們不知道configuration_tableseries_table之間的關系,因此我們找不到在單個查詢中實現該關系的方法。

我已從“ 條件執行查詢”中復制了此答案,“從其他條件執行此查詢中復制了”。

SELECT CASE WHEN ( (SELECT indicator FROM configuration_table) = 1 )
  THEN 
    SELECT series_id, series_code, series_name FROM series_table
  ELSE 
    <QUERY B>
END

在這里, Query B應該替換為您想要的查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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