Выберите из нескольких таблиц в SQL Server в C # - PullRequest
1 голос
/ 10 февраля 2012

Я хочу написать запрос SQL, который выбирает несколько столбцов из первой таблицы и все столбцы из второй таблицы.

ID - это PK в table1, а id - это FK в table2.

Это правильно:

SELECT ID, table2.ALL
FROM table1
INNER JOIN table2 ON table1.ID = table2.id 
WHERE table1.ID= x AND table1.Column3 = 'y'

Ответы [ 4 ]

4 голосов
/ 10 февраля 2012

У вас есть столбец с именем ALL в table2 или вы хотите выбрать все столбцы из table2 ??

Если вы хотите, чтобы все столбцы использовали table2.* вместо:

SELECT table1.ID, table2.*
FROM table1 
INNER JOIN table2 ON table1.ID = table2.id 
WHERE table1.ID= x AND table1.Column3 = 'y'

Кроме того, поскольку у вас есть ID в обеих таблицах, вам необходимо указать, какую из них выбрать в вашем утверждении.

Обновление: если вам не нужны все столбцы из table2, вам нужно явно указать нужные столбцы:

SELECT 
    t1.ID, 
    t2.column1, t2.column2, ....., t2.columnN
FROM table1 t1 
INNER JOIN table2 t2 ON t1.ID = t2.id 
WHERE t1.ID= x AND t1.Column3 = 'y'
3 голосов
/ 10 февраля 2012

Вы не можете использовать table2.ALL.Это будет искать столбец с именем «Все» в таблице 2.Вы хотите использовать table2.* вместо.

SELECT table1.ID, table2.*
FROM   table1 INNER JOIN table2 on table1.ID = table2.id
WHERE  table1.ID = x AND table1.Column3 = 'y'
1 голос
/ 10 февраля 2012

Вместо «ВСЕ» используйте *:

SELECT t1.ID, t2.* FROM table1 as t1
INNER JOIN table2 as t2 
ON t1.ID = t2.id 
WHERE t1.ID = x 
AND t1.Column3 = 'y'
0 голосов
/ 10 февраля 2012

Сделайте это так:

select t1.ID, t2.*
from table1 t1
inner join table2 t2 on table1.ID = table2.id
WHERE t1.ID=xxx AND t1.Column3 = 'y'

Замените xxx на ID, который вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...