выберите * из mytable, где idnumber = (выберите idnumber из другой таблицы, где othertable.column = n) - PullRequest
0 голосов
/ 17 марта 2012

Я получил две таблицы с одинаковым pk (idnumber) .. Я хочу выбрать все столбцы из table1, где idnumber (pk таблицы 1) равно idnumber (pk таблицы2, где столбец table2 = "какое-то значение "..)

пожалуйста, помогите ... спасибо

Вот что я получил до сих пор ..

SELECT     
    idnumber, fname, lname, mname, bday, gender, email, contact  
FROM         
    tblStudents   
WHERE     
    (idnumber =  (SELECT idnumber
                  FROM tblPayments
                  WHERE (payment1 = 0)))  

Это не работает ...

Я совершенно новичок в SQL Server ... только что начал несколько дней назад .. пожалуйста, помогите ..

Ответы [ 2 ]

2 голосов
/ 17 марта 2012

Предполагая, что обе таблицы имеют общий столбец, вы можете просто выполнить INNER JOIN и использовать условие WHERE для дополнительной фильтрации.

SELECT * FROM A INNER JOIN B ON A.SharedId = B.SharedId WHERE B.Column1 = 'foo';

Основы объединения SQL (2005)

Я думаю, что конкретный запрос вы ищете:

SELECT 
    S.idnumber,
    S.fname,
    S.lname,
    S.mname,
    S.bday,
    S.gender,
    S.email,
    S.contact

FROM tblStudents S 
    INNER JOIN tblPayments P ON S.idnumber = P.idnumber 
WHERE P.payment1 = 0;
0 голосов
/ 19 марта 2012

Это будет работать для вашего синтаксиса.

    'SELECT     
    idnumber, fname, lname, mname, bday, gender, email, contact  
FROM         
    tblStudents   
WHERE     
    (idnumber =  ANY (SELECT idnumber
                  FROM tblPayments
                  WHERE (payment1 = 0)))'

Этот тип синтаксиса обычно не используется.Вместо этого вы должны использовать JOIN.

...