У меня есть два столбца в одной таблице, которые ссылаются на один и тот же столбец во второй таблице, чтобы получить имя, которое относится к указанному идентификатору.
Ниже приведен мой запрос, который не работает,Два ЛЕВЫХ СОЕДИНЕНИЯ на invTypes вызывают проблему.Я читал и читал и ломал голову над этим.Я не могу понять, как заставить это возвращать имена, которые принадлежат идентификаторам, которые появляются в двух отдельных местах в главной таблице.
Что следует отметить без публикации всей структуры базы данных (чтоогромен)
и typeID
и itemTypeID
присутствуют на главном столе.Каждый из них ссылается на один и тот же столбец typeID
в таблице invTypes
.Таблица invTypes
содержит имя, соответствующее указанному идентификатору.
Кроме того, в части оператора 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