$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上提出的第一个问题)
答案 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 [...]