Вложенное предложение SELECT в SQL Compact 3.5 - PullRequest
3 голосов
/ 21 декабря 2009

В этом посте " select с вложенным select " Я прочитал, что SQL Compact 3.5 (SP1) поддерживает вложенное предложение SELECT Но мой запрос не работает:

t1 - таблица 1 t2 - таблица 2 c1, c2 = столбцы

select 
 t1.c1, 
 t1.c2, 
 (select count(t2.c1) from t2 where t2.id = t1.id) as count_t 
from 
 t1 

Поддерживает ли SQL Compact 3.5 SP1 вложенное предложение SELECT в этом случае?

Обновление:

SQL Compact 3.5 SP1 работает с этим типом вложенного запроса:

  • ВЫБРАТЬ ... откуда ... где .. IN (ВЫБРАТЬ ...)
  • SELECT ... из (SELECT ...)

Ответы [ 4 ]

8 голосов
/ 30 декабря 2009

Спасибо всем за помощь и совет.

Окончательный ответ на вопрос - НЕТ. SQL Compact 3.5 с пакетом обновления 1 (SP1) не поддерживает вложенное предложение select.

6 голосов
/ 21 декабря 2009

Вы пытаетесь приравнять скалярное значение к тому, что условно является набором результатов.

Попробуйте

select * from LogMagazines where id IN (select max(id) from UserRoles)

Хорошо, я ответил на вопрос, а вы задали совершенно новый и другой вопрос, который не совсем так, как он должен работать, но для ответа на новый вопрос, что вам нужно сделать, это объединение:

SELECT 
    t1.c1,  
    t1.c2,  
    count_t.c
FROM 
    t1 JOIN (select id, count(t2.c1) as c from t2 GROUP BY t2.id) count_t 
       ON t1.id = count_t.id

Или около того

1 голос
/ 21 декабря 2009

Попробуйте запустить select max(Id) from UserRoles И убедитесь, что это возвращает правильный результат. Тогда попробуйте select * from LogMagazines where id = С этим результатом, возможно, у вас где-то ошибка.

0 голосов
/ 21 декабря 2009

Может быть, вам нужно

select * from LogMagazines where id = (select max id from UserRoles)

...