2014-01-17 4 views
0

Я просто интересно, если это возможноМожно передать результат SQL запроса в следующий SQL запрос

, например, у меня есть запрос

query = String.format("SELECT * FROM assetParamater LEFT OUTER JOIN SpecialOffer USING (assetID) WHERE assetParameter.assetID = %d;", id); 

, так что все выглядит хорошо, но проблема в том, что id, на самом деле является идентификатором специального предложения, а не активным.

Поэтому мне нужно, например, передать результат этого запроса

QUERY RESULT = "Select assetID from assetParameter where SpecialOffer.specialOfferID = %id;", id); 

query = String.format("SELECT * FROM assetParamater LEFT OUTER JOIN SpecialOffer USING (assetID) WHERE assetParameter.assetID = %d;", QUERY RESULT); 

Кто-нибудь знает способ, как это сделать? Я ценю, что это не совсем чистый способ сделать это, но я застрял в том, что идентификатор специального предложения передается как id, поэтому любая помощь оценивается.

+0

Ваша структура таблицы не ясно ... в вашем втором запросе вы обратитесь к таблице SpecialOffer не используя его в предложении FROM ... –

ответ

2

Что не так с регулярным соединением в этом случае?

SELECT Column1, Column2 
    FROM assetParameter 
    JOIN SpecialOffer 
    ON assetParameter.assetID = SpecialOffer.assetID 
WHERE SpecialOffer.specialOfferID = %id 

Не используйте SELECT *, кстати - лучше указать столбцы, которые нужно.

Вы также можете использовать подзапрос, если вы хотите, чтобы запрашивать данные из таблицы assetParameter ...

SELECT Column1, Column2 
    FROM assetParameter 
WHERE assetID = (select assetID 
        from SpecialOffer 
         WHERE SpecialOffer.specialOfferID = %id) 
Смежные вопросы