2010-09-05 181 views
12
SELECT var1,var2,var3,table_name 
FROM table1 LEFT JOIN table_name on var3=table_name.id 

含义我想离开动态连接表,根据从table1table_name价值,因为var3从那里取。MySQL查询JOIN

与表table_name上述查询结果不存在

我的MySQL限制的错误呢?

+0

我不认为您可以这样做。如果你想要这种类型的功能或重新设计你想要做的事情,你可能需要将表名传递给存储过程。 – spig 2010-09-05 14:39:48

+1

这不是MySQL限制。更像是SQL限制,如果你可以调用它,但我宁愿说,这是一个迹象表明,你的数据库设计有问题。 – Mchl 2010-09-05 15:01:36

+0

主表包含对象。每个对象都可以有属性。每个属性列出可能的值都有单独的表格 - 值可能非常长(数百个字符),并且有很多可能的值(数千)。 所以主表每个属性有两个字段:attr_table_name,attr_table_id - 节省空间并允许修改属性名称。 查询运行时,我返回实际的属性值,而不是id,这就是为什么我需要LEFT JOIN和动态表命名。 你还会怎样设计数据库? – selytch 2010-09-13 04:11:50

回答