2016-02-29 77 views
-3

我可以知道如何選擇一個項目而不重複嗎?這是事情。如何選擇聲明以避免重複項目

我在學生桌上的第一列(例如:studentid = 123)上的值相同。

而另一列在帳戶表中具有相同的值(123)。

如果我只想在學生表內連接帳戶表中選擇一個值,該怎麼辦?我使用distinct,但它仍然給出兩個值,因爲其他列具有不同的值。

目前查詢:

SELECT DISTINCT SAS_Student.SASI_MatricNo 
    ,SAS_Student.SASI_Name 
    ,SAS_Student.SASI_PgId 
    ,SAS_Student.SASI_ICNo 
    ,SAS_Student.SASI_CurSem 
    ,SAS_AccountsDetails.TransTempCode 
    ,SAS_AccountsDetails.TempAmount 
    ,SAS_AccountsDetails.TempPaidAmount 
    ,SAS_AccountsDetails.PostStatus 
    ,SAS_AccountsDetails.Ref1 
    ,SAS_AccountsDetails.NoKelompok 
    ,SAS_AccountsDetails.NoWarran 
    ,SAS_AccountsDetails.AmaunWarran 
    ,SAS_AccountsDetails.noAkaunPelajar 
    ,SAS_AccountsDetails.StatusBayaran 
FROM SAS_AccountsDetails 
INNER JOIN SAS_sponsorinvoice ON sas_sponsorinvoice.creditref1 = SAS_AccountsDetails.ref1 
    OR sas_sponsorinvoice.creditref1 = SAS_AccountsDetails.refcode 
INNER JOIN sas_student ON sas_sponsorinvoice.creditref = sas_student.sasi_matricno 
WHERE sas_sponsorinvoice.batchcode = 'B000000000000303' 

SASI_MatricNo SASI_Name    SASI_PgId SASI_ICNo  SASI_CurSem TransTempCode  TempAmount TempPaidAmount PostStatus Ref1 NoKelompok NoWarran AmaunWarran noAkaunPelajar StatusBayaran 
"160553"  "RATHIYMALER A/P MANIAM" "32"  "911229086066"   2 "TRT000000000000054"   0    0 "Ready" "001" ""   ""     0 ""    "" 
"160553"  "RATHIYMALER A/P MANIAM" "32"  "911229086066"   2 ""       0    0 "Posted" "001" ""   ""     0 ""    "" 
"160553"  "RATHIYMALER A/P MANIAM" "32"  "911229086066"   2 "TRT000000000000019"   0    0 "Ready" "001" ""   ""     0 ""    "" 
+1

提供一些示例數據和預期輸出。您如何選擇要包含在結果集中的哪條記錄? – HoneyBadger

+1

告訴我們你試過了什麼,你的表,查詢和預期輸出 –

+1

也是這個與mysql或postgresql有關嗎? –

回答

0

最簡單的解決方法是添加到查詢

Order By --(condition to bring the desired record to the top of the list)-- 
Limit 1 

月底將返回剛纔的結果集的第一行。