我們有以下查詢:使用結果
SELECT
foo_id,
IF ((SELECT
COUNT(foo_mapping_id)
FROM
foo_bar_mappings,
bar
WHERE
foo_mapping_foo_id = foo_id
AND foo_mapping_bar_id = bar_id) > 0,
foo_status,
'inactive') AS foo_status
FROM
foo
WHERE
foo_status = 'inactive'
當我們運行它,我們得到一個空的結果,因爲foo_status
不等於到inactive
(雖然有行滿足IF
)。 foo_status
是存在於foo
表中的列,但我們想要「覆蓋」它。
我們將如何更改此查詢,以便我們可以使用foo_status
,如在WHERE
條款中返回的那樣?很明顯,這個查詢已經被簡化,使問題更容易提問和理解。
但'擁有'沒有任何'group by'。是否有意義? – Rahul
@Rahul。 。 。它在MySQL中是因爲這個擴展。我認爲擴展的存在是因爲MySQL實現了子查詢(其他數據庫不一定這樣做),所以這是一種不使用子查詢就可以進行過濾的方法。 –
啊!現在有道理。現在明白了。 – Rahul