sql-inner连接语法

ws51t4hk  于 2021-06-24  发布在  Mysql
关注(0)|答案(2)|浏览(168)

所以在我的数据库中,我有这些记录,它们有一个序列号,可以把它们分开。不过,我想用另一个表连接它们,在这个表中,一个人最多可以有2个序列号与他们的帐户相关联,就像这样。

|account #|Serial#1|Serial#2|
------------------------------------------
|01234201 |P984564|P12388|
------------------------------------------

所以我的问题是,您能否在on语句中设置一个内部连接查询来比较一列和两列。如。 INNER JOIN datatable2 ON datatable1.Serial#1 OR datatabel2.Serial#2 = datatable2.serial#

93ze6v8z

93ze6v8z1#

是的,应该是:

INNER JOIN datatable2 ON datatable1.Serial#1 = datatable2.serial# 
              OR datatable2.Serial#2 = datatable2.serial#

不过,我强烈建议您规范化表,这样您就不需要在where中使用or条件。

bxgwgixi

bxgwgixi2#

创建标准化的 View 对数据进行查询。这将在将来为您省去一些麻烦,并使您的查询更具可读性。https://dev.mysql.com/doc/refman/8.0/en/create-view.html 更多关于 View s。特别是与您的视图相关联的查询将是这样的:

Select AccountNumber, Serial1 as Serial from datatable union select AccountNumber, Serial2 as Serial from datatable

我对mysql有点生疏,但这应该会给你一个大致的要点。然后像这样询问:

Select AccountNumber from myView where Serial = (whatever)

如果由于数据绑定到其他系统/进程而很难正确规范化数据,那么这是一个很好的解决方法。

相关问题