MYSQL错误1060重复

时间:2017-08-22 10:17:26

标签: mysql sql database

SELECT SUM(T.KDV) AS TOTALKDV
FROM   (SELECT *
    FROM pharmana_urun_db.general_Table, pharmana_Hareket_db.general_Table
    WHERE pharmana_urun_db.general_Table.Barkod = pharmana_Hareket_db.general_Table.Barkod AND  pharmana_Hareket_db.general_Table.EczaneID = '".$pharmacy_id"') AS T
GROUP BY T.Kategori
  

1060 - 重复的列名称'Barkod',

我该如何避免这种情况?

2 个答案:

答案 0 :(得分:0)

(SELECT * FROM pharmana_urun_db.general_Table, pharmana_Hareket_db.general_Table

这会选择两个名称相同的列Barkod

您需要使用显式连接语法作为Jens建议

很好的解释here

答案 1 :(得分:0)

学习使用正确的JOIN语法。不要不必要地使用子查询。

您应该将此查询编写为:

SELECT SUM(T.KDV) AS TOTALKDV
FROM pharmana_urun_db.general_Table gt1 JOIN
     pharmana_Hareket_db.general_Table gt2
     USING (Barkod)
WHERE gt2.EczaneID = '".$pharmacy_id"'
GROUP BY Kategori;

您还应该学习使用参数将值传递给SQL查询,而不是更改查询字符串。我还怀疑你应该在Kategori中加入SELECT