mysql错误1066

时间:2012-12-04 20:26:54

标签: php mysql mysql-error-1066

$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上提出的第一个问题)

2 个答案:

答案 0 :(得分: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 injection attacks持开放态度。享受你的服务器pwn3d。

答案 1 :(得分: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 [...]