Вложенное предложение SELECT в SQL Compact 3.5

В этом посте " выберите с помощью вложенного выбора" я прочитал, что 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 работает с этим типом вложенного запроса:

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

4 ответа

Решение

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

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

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

Пытаться

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

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

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

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

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

?

Другие вопросы по тегам