0

我想在表 2 上为表 1 上的“键”获取值。为了不混淆具有相同名称的输出,我使用“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 - Unknown column 'pt1.tit' in 'on Clause' ”。也许我的表格结构会有所帮助。

pg_show

url
php
山雀
desc

pg_text

关键
语言
文本

理念:

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

另一方面,我需要显示页面标题和描述。为此,我创建了一个带有“CONSTANTS”的表 *(pg_text)* ,该表将为每种语言(lang field)提供一个值(text field ) 。

关于查询:

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

4

1 回答 1

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子句中谈论的连接的歧义。

于 2012-10-21T19:12:43.377 回答