[英]How to reuse a table in MySQL Workbench?
我閱讀了類似問題的解決方案,但是在我看來,它似乎不起作用,我嘗試過:
WITH tmp AS
( (things below is just an **example** to show that it will return a table)
SELECT
*clounmname* FROM *tablename*
WHERE *XXXX*
)
SELECT *columnname* FROM tmp;
但是我的mysql工作台說一開始就使用了WITH。 在WITH之前,但仍然無法正常工作。
所以我嘗試了:
SELECT *columnname* FROM
( (things below is just an **example** to show that it will return a table)
SELECT
*clounmname* FROM *tablename*
WHERE *XXXX*
);
它運行沒有錯誤,但沒有返回任何內容。.所以我不知道該怎么辦,mysql工作台有問題嗎?
(對於Ubuntu 14.04,Mysql worbench的版本號是6.2)(上面的查詢只是一個例子,我知道AND和其他東西。)
我什至嘗試:
CREATE TABLE temp
SELECT *columnname* FROM
( (things below is just an **example** to show that it will return a table)
SELECT
*clounmname* FROM *tablename*
WHERE *XXXX*
);
SELECT *columnname* FROM temp;
但是沒有任何錯誤返回
MySQL目前不支持WITH
關鍵字。 公用表表達式在MySQL中尚不可用。
解決方案是使用臨時表或派生表或內聯視圖。
您使用的查詢稱為Common table Expression (CTE)
。 到目前為止, MySQL
不存在對CTE的支持。 另一種解決方案是使用Temporary table
或inline view
。
因此,您發布的CTE查詢可以使用inline view
進行如下修改。 從內部查詢返回的結果集將被視為臨時結果集/視圖。
select * from
(
SELECT *clounmname*
FROM *tablename*
WHERE *XXXX*
) tab
如果內部查詢的結果將被多次使用,請考慮將其拉到臨時表中,然后使用該臨時表,如下所示
create temporary table mytab (*clounmname* datatype);
insert into mytab
SELECT *clounmname*
FROM *tablename*
WHERE *XXXX*;
select * from mytab;
確保datatype
的臨時表和列的datatype
在選擇列表中列的是一樣的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.