簡體   English   中英

如何在MySQL Workbench中重用表?

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

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