回答

收藏

如何从两个不同的列到单独的表上的同一列进行联接

技术问答 技术问答 306 人阅读 | 0 人回复 | 2023-09-12

我在一个表上有两列,它们引用第二个表上的同一列,以获得与指定ID相关的名称。
3 C! r& U. E- V* i% }, X: C下面是我正在使用的查询无法正常工作。invTypes上的两个LEFT
8 A" L; i1 U  M) l) @$ f) c: nJOINS导致了此问题。我读了很多书,并且一直在为此绞尽脑汁。我一辈子都无法弄清楚如何使该方法返回的名称属于在主表中两个单独位置中显示的ID。: N  z" A/ y" L! J) ]+ o- D: W
无需发布整个数据库结构(这是巨大的)的注意事项
5 g0 b5 C& v# Y两者typeID与itemTypeID存在于主表。这些3 [0 ]# m& J+ o2 ]2 B( w! I8 d
表typeID中的每一个都引用invTypes表中的同一列。该invTypes表包含与所述ID相对应的名称。
6 i4 w% j' q; O5 j此外,在语句的SELECT部分??中,typeName来自invTypes和stationName来自staStations表。. x5 t* ^" @9 o* J. M6 k
主要的问题是,是否为invTypes。typeName是从两列中两次引用的,我如何1:将表正确连接到这两点,以及2:如何区分两个invTypes中的区别。typeName如果可以创建两个JOIN语句,则返回该值。
0 h: v, |  V$ _& ZSELECT
" _4 B6 H0 T- @4 t0 c`logTime`,`itemID`,`typeName`,`actorName`,`stationName`,`action`,`passwordType`,! B- U9 Y7 _& D4 S9 J6 |
`quantity`,`oldConfiguration`,`newConfiguration` ) E8 E$ \/ J: b7 b6 {
        FROM eve_container_audit
( f7 T! Z3 }2 \) I        LEFT JOIN invTypes ON eve_container_audit.typeID = invTypes.typeID
% j3 M+ T7 k7 R2 S1 F/ B        LEFT JOIN invTypes ON eve_container_audit.itemTypeID = invTypes.typeID
3 _3 [& S1 ~4 [' V        LEFT JOIN staStations ON eve_container_audit.locationID = staStations.stationID
& V- M8 {, I2 o8 L5 ~, b8 R               
5 f, F; t$ M1 n0 E' W解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则