-2
$id=$_GET["id"];
$query= "
SELECT
blomster_produkter.blomster_produkt_id,
blomster_produkter.blomster_produkt_navn,
blomster_produkter.blomster_produkt_pris
FROM
blomster_produkter
INNER JOIN blomster_produkter ON 
blomster_produkter.FK_blomster_produkt_id=blomster_produkter.blomster_produkt_navn     
blomster_produkter.FK_blomster_produkt_id=blomster_produkter.blomster_produkt_pris
blomster_produkter.FK_blomster_produkt_id=blomster_produkter.blomster_produkt_id
WHERE FK_blomster_kategori_id=$id";

为什么这会给我一个 mysql 错误 1066?

(如果我遗漏了一些重要的东西,也很抱歉,这是我在stackoverflow上提出的第一个问题)

4

2 回答 2

8

0.1 秒的谷歌搜索:“mysql 错误 1066” - 不是唯一的表名/别名

    FROM
    blomster_produkter   <--table #1
    INNER JOIN blomster_produkter ON   <-table #2

如果不使用别名,您不能将表连接到自身,或在连接中重新使用相同的表名:

FROM blomster_produkter
INNER JOIN blomster_produkter AS someothername ON
                             ^^^^^^^^^^^^^^^^^--- the alias

然后在连接条件中根据需要更改表引用。

另外,请注意,您对sql 注入攻击持开放态度。享受您的服务器 pwn3d。

于 2012-12-04T20:29:18.253 回答
0

错误 1066 是“不是唯一的表/别名”

这是因为您在不创建别名的情况下将自己加入一个表,您必须使用如下别名:

SELECT
    bp1.blomster_produkt_id,
    bp1.blomster_produkt_navn,
    bp1.blomster_produkt_pris
    FROM
    blomster_produkter bp1
    INNER JOIN blomster_produkter bp2 ON
    bp1.FK_blomster_produkt_id=bp2.blomster_produkt_navn [...]
于 2012-12-04T20:31:26.713 回答