同一列的多个值 - SQL INNER JOIN

时间:2012-10-21 18:56:01

标签: sql inner-join

我想在表2中获取表1中“Keys”的值。为了不混淆具有相同名称的输出,我使用“AS”。接下来就是我正在做的事情,但它不起作用(当它发生时):

SELECT pg_show.php,pg_show.tab,pg_text.text as title,pg_text.text as description
FROM pg_show
INNER JOIN pg_text ON pg_show.tit=title
INNER JOIN pg_text ON pg_show.desc=description
WHERE pg_show.url='value'
LIMIT 0,1

我该如何解决?

修改


如上所述,我没有以正确的方式解释我的问题。应用给定的解决方案后,我收到一个错误:“#1054 - 'on clause'中的未知列'pt1.tit'”。也许我的表格结构会有所帮助。

pg_show

URL
PHP
山雀
递减

PG_文本



文本

想法:

我想根据被调用的页面名称执行php文件。由于页面名称​​(url field)可能因用户语言而异(我不想使用httpdaccess url重写,因为整个Idea更复杂)我必须存储所有可能的值,这些值称为精确的php文件(所有可能的url值)

另一方面,我需要显示页面标题和说明。为此,我创建了一个带有“CONSTANTS”的表*(pg_text)*,每个语言(lang字段)的值为(文本字段)

关于查询:

我正在尝试构建的查询应该获取(知道URL值)的php文件名和tit和desc字段的值(表2中的tex字段) ,在第一个表上具有“CONSTANT”名称的值,以便在表2中获得它们各自的值。

1 个答案:

答案 0 :(得分:2)

希望我能正确理解你的问题!基本上,您必须为连接表提供不同的别名。如:

SELECT pg_show.php, pg_show.tab, pt1.text as title, pt2.text as description
FROM pg_show
INNER JOIN pg_text pt1 ON pg1.key = pg_show.tit
INNER JOIN pg_text pt2 ON pg2.key = pg_show.desc
WHERE pg_show.url='value'
LIMIT 0,1

pg_text之后的名称将消除您在select子句中谈论的联接的歧义。