Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 вопрос по выборке  [new]
mister_dude
Member

Откуда:
Сообщений: 3
дело в следующем: имеется sql server 2005 и три таблицы: table1 c полями table1.id,table1.col1,table1.col2 и table2 c полями table2.id, table2.col1, table2.col2 а также таблица conntable c полями table1id и table2id, реализующая связи между первыми двумя таблицами.
вопрос: как получить таблицу в которой будут содержаться все записи из table1 и в зависимости от того, существует ли связь с конкретной записью из table2 (например у которой table2.id = 2), будет выводиться true или false???
1 ноя 11, 16:11    [11534092]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по выборке  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
SELECT T1.*, ISNULL((SELECT TOP(1) 'True' FROM conntable C JOIN table2 T2 ON C.table2id=T2.id WHERE C.table1id=T1.id AND T2.id=2),'False')
FROM table1 T1;
1 ноя 11, 16:21    [11534182]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по выборке  [new]
mister_dude
Member

Откуда:
Сообщений: 3
iap
SELECT T1.*, ISNULL((SELECT TOP(1) 'True' FROM conntable C JOIN table2 T2 ON C.table2id=T2.id WHERE C.table1id=T1.id AND T2.id=2),'False')
FROM table1 T1;


Примного благодарен! а почему вместо False возвращается Fals и можно ли это както исправить? хотя наверное если возвращать 1 и 0 разницы не будет?
1 ноя 11, 16:37    [11534335]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по выборке  [new]
invm
Member

Откуда: Москва
Сообщений: 9824
mister_dude,
SELECT T1.*, CAST(ISNULL((SELECT TOP(1) 'True' FROM conntable C JOIN table2 T2 ON C.table2id=T2.id WHERE C.table1id=T1.id AND T2.id=2),'False') AS VARCHAR(5))
FROM table1 T1;
1 ноя 11, 16:58    [11534506]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по выборке  [new]
invm
Member

Откуда: Москва
Сообщений: 9824
Промахнулся...
SELECT T1.*, ISNULL((SELECT TOP(1) CAST('True' AS VARCHAR(5)) FROM conntable C JOIN table2 T2 ON C.table2id=T2.id WHERE C.table1id=T1.id AND T2.id=2),'False')
FROM table1 T1;
1 ноя 11, 17:20    [11534647]     Ответить | Цитировать Сообщить модератору
 Re: вопрос по выборке  [new]
mister_dude
Member

Откуда:
Сообщений: 3
invm
Промахнулся...
SELECT T1.*, ISNULL((SELECT TOP(1) CAST('True' AS VARCHAR(5)) FROM conntable C JOIN table2 T2 ON C.table2id=T2.id WHERE C.table1id=T1.id AND T2.id=2),'False')
FROM table1 T1;


Спасибо большое!)
2 ноя 11, 07:59    [11536682]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить