select tenant_name, tenant_dob
from tenant
where rental_no = (select rental_no
from rental
where apt_no = 203);
問題是列出住在apt 203的租戶的名字和生日。上面的查詢是正確的。我的編碼如下。我知道我沒有使用子查詢語句。實際上,我只是簡單地記住學校考試問題的子查詢語句,但我想知道我什麼時候必須使用子查詢,以及爲什麼必須使用子查詢。另外,請告訴我一些我必須知道的有關子查詢才能使用的信息。SQL初學者:子查詢
select tenant_name, tenant_dob
from tenant
where rental_no = 203;
'rental_no '和'apt_no'不一樣。您正在使用'=',但更常用的是'in'。或者,即使是「加入」。 –
當所有數據位不在同一個表中時,您需要使用子查詢(或其他方法,如連接)。 apt_no不在TENANT表中,所以您需要獲取與apt_no對應的出租號碼。注意關注Gordon所說的話:如果公寓可能有多個租賃號碼(通常有!),那麼你的查詢會給你一個運行時錯誤。如果返回一個租賃號碼,則可以使用=號;但如果有幾個租戶(幾個租戶),使用IN - 這將給你所有的租戶,而不只是一個,在apt_no = 203。 – mathguy