Поэтому я прошу прощения, если это произошло раньше, но я не мог найти твердый ответ.
Я пытаюсь получить один столбец идентификаторов из набора из 3 столбцов в моей таблице, соединенного с другой таблицей.
Оператор select для получения одного столбца будет выглядеть так:
SELECT id FROM TableA JOIN TableB USING (key1, key2) WHERE someValue = X;
Теперь, насколько я понимаю, я могу объединиться, чтобы получить вот так:
SELECT spec_id1 AS id FROM TableA JOIN TableB USING (key1, key2) WHERE someValue1 = X
UNION
SELECT spec_id2 AS id FROM TableA JOIN TableB USING (key1, key2) WHERE someValue2 = Y
UNION
SELECT spec_id3 AS id FROM TableA JOIN TableB USING (key1, key2) WHERE someValue3 = Z
Есть ли способ повторно использовать TableA JOIN TableB USING (key1, key2), чтобы он не объединялся для каждого выбора? У меня также есть условие WHERE, которое применяется ко всем вариантам выбора, которые не показаны выше. Могу ли я использовать что-то вроде:
FROM TableA JOIN TableB USING (key1, key2) WHERE someOtherValue = W
Я пытаюсь сделать это в PHP, используя mysqli. Мой первоначальный инстинкт был использовать временную таблицу и запрашивать ее, но я не уверен, как справиться с этим в mysqli. Если бы я мог использовать таблицу для нескольких следующих запросов, это было бы вдвойне идеально, поскольку в объединенных таблицах есть дополнительные данные, которые можно было бы использовать позже.
Извините, если это наивно, но я не очень большой веб-разработчик. Заранее спасибо.
EDIT:
Я смотрю на временные таблицы, и кажется, что это может быть хорошим способом обойти это. Я все еще хотел бы получить подтверждение того, хорошая это идея или нет, прежде чем что-то делать с ней.