我在一个表上有两列引用第二个表上的同一列以获取与指定的ID相关的名称。如何执行从两个不同的列到单独的表上的同一列的联接
以下是我正在使用的查询不起作用。关于invTypes的两个LEFT JOINS会导致问题。我已阅读和阅读,并一直在我的脑子里这个。我不能为我的生活弄清楚如何使这个返回属于主表中两个单独位置的ID的名称。
要注意的事项与进行张榜整个数据库的结构(这是巨大的)
两个typeID
和itemTypeID
存在于主表。这些引用中的每一个都与invTypes
表中的typeID
列相同。 invTypes
表包含与所述ID相对应的名称。
此外,在声明的SELECT部分,typeName
来自invTypes
和stationName
来自staStations
表。
主要问题是,如果invTypes。 typeName
被从两列引用两次,我如何1:正确地将表加入这两个点和2:我如何分辨两个invTypes中的差异。 typeName
如果可以创建两个JOIN语句,则返回。
SELECT
`logTime`,`itemID`,`typeName`,`actorName`,`stationName`,`action`,`passwordType`,
`quantity`,`oldConfiguration`,`newConfiguration`
FROM eve_container_audit
LEFT JOIN invTypes ON eve_container_audit.typeID = invTypes.typeID
LEFT JOIN invTypes ON eve_container_audit.itemTypeID = invTypes.typeID
LEFT JOIN staStations ON eve_container_audit.locationID = staStations.stationID
我想提前道歉,因为我的问题是格式不正确,没有组织。我对一个解决方案感到不知所措,甚至很难问这个问题。另外,我想提前感谢您提供的任何建议。
一些示例数据将有助于理解从外观上来看这更好的原因似乎是,'typeID'和'itemTypeID'拥有的每一行中相同的值eve_container_audit? –
确定itemTypeID引用容器类型,并且typeID引用容器内的项目,但是,两个id都从另一个表上的相同位置获得名称。我希望这有帮助。由于表格很大,并且与手头的问题相关的问题有很多无关紧要的东西,因此要真实地表示数据是非常困难的。由于容器和其中的项目都是相同的项目,所以它们以相同的方式从相同的项目数据库中获得名称 – Wes