【发布时间】:2015-11-06 03:42:24
【问题描述】:
我的数据库中有两个表,我想使用内部连接合并这两个表 - 两个表中都有一个唯一的名称相同但数据不同,因此我不能使用该列,因为主数据中的数据不同关键栏目! 我也不能使用联合运算符,因为我想要第一个表和第二个表中的大部分列 如何合并这两个表? 这是我正在尝试做的代码 sn-p:
注意:(表一中的farmercode与表二中的farmercode值不同,但列名相同,也是主键)
SELECT base.stationCode ,
base.Farmercode ,
base.Farmername ,
base.POcode ,
base.Sex ,
base.DateofContract ,
CONCAT(a.InspectionDate1, a.InspectionDate2) AS Internal_inspectionDate ,
a.UnderstandingOfCertification ,
a.TotFarmAcreage ,
a.CoffeePlots ,
a.CoffeeAcreage ,
a.ArabicTrees ,
a.ProductionEstimateFarm ,
a.Tel ,
a.InspectorName
FROM kcl_baseline_2015_final AS base
INNER JOIN main AS a ON ( base.farmerCode = a.farmerCode )
【问题讨论】:
-
如果两个表之间没有关系,如何正确连接它们(除非您使用交叉连接)?用于连接两个表的不是列名,而是列值(正如您所说的不同)。
-
好的...我知道交叉连接!
-
指定如何你想“合并”表格,即应该在哪里返回什么数据。两个表中哪些字段应该相等? - 请注意,您可以将 any 字段连接到 any 其他字段,无论是否是 PK。
-
来自上面的 select 语句:我只需要从两个表中指定的列中的数据。我本可以使用连接,但我没有输出正确的结果。
-
@King14:如果您使用交叉连接,您将获得这两个表的笛卡尔积(任意到任意)。不是你现在正在寻找的。我建议通过添加适当的 PK 和 FK 来改进您的数据库结构。
标签: sql database join mysql-workbench