2013-07-05 36 views
0

我的名字是Srinivas我正在做一個學校管理軟件在PHP中使用MySQL作爲分貝。從MySQL選擇語句獲取重複的數據

pl任何一個幫助我,我已經在我的SQL查詢stucked。

我會解釋我的概率。我有兩個表,一個是學生,另一個表是標記

每個表有5行 當我執行select語句兩個表結果5記錄在每個結果。 這是select語句我已經寫了

對於表學生: SELECT ta.rollno, ta.StdNm FROM tbl_student ta WHERE ta.Cls =22

對於表商標:SELECT tc.telugu FROM tbl_marks tc WHERE tc.Cid =22

都造成5個記錄每個語句,但是當我結合他們兩人它導致25條記錄,而不是顯示5個記錄

的這個被組合SQL SELECT:

SELECT DISTINCT tc.rollno, tc.english, ta.rollno, ta.StdNm FROM tbl_marks tc, tbl_student ta WHERE tc.Cid =22 AND ta.Cls =22

PL任何一個可以告訴我在哪裏,我在此聲明

+0

聯接會給你所有組合。你想如何匹配行?也就是說,如果你有一個表的行a,b,c,d和e,另一個表有z,y,x,w和v,你如何定義行a是否與z,y,x匹配, w或v – Kickstart

+0

使用正確的連接,以便你將得到正確的記錄。您正在使用不正確的交叉連接 –

+0

您是否爲每個主題都有單獨的標記列? – Bohemian

回答

0

做錯誤試試這個:

SELECT 
    tc.rollno, 
    tc.english, 
    ta.rollno, 
    ta.StdNm 
FROM 
    tbl_marks tc 
LEFT JOIN tbl_student ta 
    ON ta.Cls = tc.Cid 
WHERE 
    tc.Cid =22 
0

使用Joins。您的查詢會生成單個查詢的交叉產品,從而產生25個結果。

0
SELECT tc.rollno, tc.english, ta.rollno, ta.StdNm 
FROM tbl_marks tc 
inner join tbl_student ta on ta.Cls = tc.Cid 
WHERE ta.Cls =22 
0

你需要JOIN SQL查詢: 試試這個:

SELECT tc.rollno, tc.english, ta.rollno, ta.StdNm 
FROM tbl_marks AS tc JOIN tbl_student AS ta ON tc.Cid = ta.Cls 
WHERE tc.Cid =22 
2

嘗試......

SELECT DISTINCT tc.rollno, tc.english, ta.rollno, ta.StdNm 
FROM tbl_marks tc, tbl_student ta 
WHERE tc.Cid =22 AND ta.Cls =22 AND ta.rollno=tc.rollno; 
+0

@ user2553072-我不認爲你需要從兩個表中選擇'rollno',因爲它們是相同的,但我只是改進了你的查詢,所以我讓它成爲了。 – kevinm