2012-03-17 62 views
0

我得到了兩個表,其中pk相同(idnumber)..我想從table1中選擇所有列,其中idnumber(table1的pk)是等於idnumber(表2的PK,其中表2的列=「一些價值」。)select * from mytable其中idnumber =(從其他地方選擇idnumber其中,其他的列= n)

請幫助...謝謝

這裏是我迄今爲止..

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

它不工作...

我完全新的SQL Server ..剛剛起步前幾天..請幫助..

回答

2

假設兩個表共用一個欄,你可以執行INNER JOIN並使用WHERE子句執行額外的過濾。

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

SQL Join Fundamentals (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

謝謝..它的工作。 – 2012-03-17 08:47:48

0

這會爲你的語法工作。

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

這種語法不常用。您應該使用JOIN來代替。