12
SELECT var1,var2,var3,table_name
FROM table1 LEFT JOIN table_name on var3=table_name.id
含義我想離開動態連接表,根據從table1
的table_name
價值,因爲var3
從那裏取。MySQL查詢JOIN
但
與表table_name上述查詢結果不存在
我的MySQL限制的錯誤呢?
SELECT var1,var2,var3,table_name
FROM table1 LEFT JOIN table_name on var3=table_name.id
含義我想離開動態連接表,根據從table1
的table_name
價值,因爲var3
從那裏取。MySQL查詢JOIN
但
與表table_name上述查詢結果不存在
我的MySQL限制的錯誤呢?
在SQL查詢中,表名和列名不能是動態的。因此,您必須通過編程方式應用您的邏輯,使用2個查詢或存儲過程,請參閱此處的示例:http://forums.mysql.com/read.php?98,126506,126598#msg-126598
我不認爲您可以這樣做。如果你想要這種類型的功能或重新設計你想要做的事情,你可能需要將表名傳遞給存儲過程。 – spig 2010-09-05 14:39:48
這不是MySQL限制。更像是SQL限制,如果你可以調用它,但我寧願說,這是一個跡象表明,你的數據庫設計有問題。 – Mchl 2010-09-05 15:01:36
主表包含對象。每個對象都可以有屬性。每個屬性列出可能的值都有單獨的表格 - 值可能非常長(數百個字符),並且有很多可能的值(數千)。 所以主表每個屬性有兩個字段:attr_table_name,attr_table_id - 節省空間並允許修改屬性名稱。 查詢運行時,我返回實際的屬性值,而不是id,這就是爲什麼我需要LEFT JOIN和動態表命名。 你還會怎樣設計數據庫? – selytch 2010-09-13 04:11:50