2016-07-08 7 views
0

Я хочу, чтобы объединить два SQL выбирает из одной таблицыКак объединить два SQL выбрать

Запрос 1:

SELECT UserId 
FROM ShoppingLike 
WHERE (ShoppingScoreTypeId = 2) AND (WhichId = 75) 

Запрос 2:

SELECT ShoppingLike.WhichId 
FROM ShoppingLike 
WHERE (ShoppingLike.ShoppingScoreTypeId = 2) AND (ShoppingLike.UserId = 189) 

Вместо 75 в запросе 1, как следует ли использовать результат запроса 2?

+1

Это может помочь, если вы предоставите данные образца и ожидаемые результаты ... – sgeddes

+0

@sgeddes Я предполагаю, что он хочет «UNION» ... что еще это может быть? –

+0

@TimBiegeleisen - на самом деле не уверен, что честно, 'union' может иметь смысл, но так может' существо'' или 'in'. Кто знает, на данный момент ... – sgeddes

ответ

0

Возможно, с запросом подвыбора?

SELECT UserId 
FROM ShoppingLike 
WHERE WhichId IN (
    SELECT WhichId 
    FROM ShoppingLike 
    WHERE (ShoppingScoreTypeId = 2) AND (UserId = 189) 
) 

Хотя это всегда будет производить строки с UserId 189 как результат, в этом случае запрос может просто быть записаны следующим образом:

SELECT UserId 
FROM ShoppingLike 
WHERE (ShoppingScoreTypeId = 2) AND (UserId = 189) 

Это возвращает строку для каждой записи с ShoppingScoreTypeId = 2 для UserId 189.

+0

Спасибо, он отлично работает :) – dan

0
SELECT  UserId 
FROM   ShoppingLike 
WHERE  (ShoppingScoreTypeId = 2) 
AND WhichId = (
SELECT  top 1 ShoppingLike.WhichId 
FROM   ShoppingLike 
WHERE  (ShoppingLike.ShoppingScoreTypeId = 2) AND (ShoppingLike.UserId = 189) 
) 
+0

почему «SELECT top 1», это должен быть массив записи, а не только одна запись – dan

+0

О, вы попросили совместить результат вашего второго запроса. В этом случае удалите "top 1" и измените "и WhichId in (...) –

Смежные вопросы