因此,在我的数据库中,我有这些记录,这些记录具有序列号,以便将它们彼此分开。但是我希望将它们与另一个表格连接起来,其中一个人最多可以有两个与其帐户关联的序列号。
|account #|Serial#1|Serial#2|
------------------------------------------
|01234201 |P984564|P12388|
------------------------------------------
所以我的问题是,你可以在on语句中设置一个Inner Join查询来比较一列和两列。例如
INNER JOIN datatable2 ON datatable1.Serial#1 OR datatabel2.Serial#2 = datatable2.serial#
答案 0 :(得分:1)
是的,它会是:
INNER JOIN datatable2 ON datatable1.Serial#1 = datatable2.serial#
OR datatable2.Serial#2 = datatable2.serial#
我强烈建议您将表格标准化,这样您就不需要在WHERE中使用OR条件。
答案 1 :(得分:1)
为数据创建规范化的View
,而不是针对该数据进行查询。这将为您节省一些令人头疼的问题,并使您的查询更具可读性。有关 Select AccountNumber, Serial1 as Serial from datatable union select AccountNumber, Serial2 as Serial from datatable
的更多信息,请https://dev.mysql.com/doc/refman/8.0/en/create-view.html。特别是与您的视图相关联的查询将具有以下内容:
Select AccountNumber from myView where Serial = (whatever)
我特别对mySQL有点生疏,但这应该给你一个通用的要点。然后像这样查询:
SUMPRODUCT(($I$9:$I$25=L9)*1)
如果正确规范化您的数据太困难,这是一个很好的解决方法,因为它与其他系统/流程捆绑在一起。