2013-08-23 58 views
0

SQL描述查詢中顯示多個值PHP MYSQL返回結果兩次(雙人間)

我的意思是,如果SQL查詢居然出了把是這樣的:

10456123 4561265 12 13 45 55 66 
45869655 4556446 99 56 45 45 45 

它是作爲顯示:

10456123 4561265 12 13 45 55 66 
45869655 4556446 99 56 45 45 45 
10456123 4561265 12 13 45 55 66 
45869655 4556446 99 56 45 45 45 

是表示DOUBLE倍(2倍)

+6

您實際上正在執行兩個查詢並打印出兩者的結果。難道兩者實際上有相同的結果嗎? –

+0

@ UlrichSchmidt-Goertz我使用了2個quires,因爲我不知道如何在單個查詢中做到這一點:( – user2704822

+0

好吧,我明白了。那麼,您是否嘗試過執行查詢(它將是$ sql)數據庫直接? –

回答

1

嘗試增加DISTINCT:

SELECT DISTINCT * 
    FROM 32r07, 
     32r07names 
WHERE 32r07.htno = 32r07names.htnon 
    AND 32r07.htno = '$name' 

SELECT DISTINCT * 
    FROM 32r07names 
WHERE htnon = '$name' 

這不是求解plroblem,但它將幫助。另外,請勿使用*。 我想你需要檢查表中的重複值。

+0

我確定沒有重複的值。你說'不要使用*'這是否意味着,我應該用逗號分隔所有的列名? – user2704822

+0

沒有重複的值...是否有任何更改,這可以在單個查詢中完成.. 。我用這個('32r07.htno = 32r07names.htnon')來檢查輸入是否在兩個表中.... – user2704822

+0

是的,我的意思是寫所有的列。先在SQL Developer中嘗試查詢。你發現問題了嗎? –

0

你實際上是在執行(幾乎)相同的查詢兩次:

SELECT * FROM 32r07, 32r07names WHERE 32r07.htno = 32r07names.htnon AND 32r07.htno = '$name';

可以改寫爲

SELECT * FROM 32r07 INNER JOIN 32r07names ON htno = htnon WHERE 32r07.htno = '$name';

第二個查詢是

SELECT * FROM 32r07names WHERE htnon = '$name';

哪個是好像說,乾脆:

... WHERE htnon = htno = '$name';

+0

。我可以只使用一個查詢嗎?如果是的...請幫助我... – user2704822

+0

這沒有幫助:(我試過'選擇*從32r07內部聯接32r07names在htno = htnon WHERE 32r07.htno ='$ name';'但同樣:( – user2704822

+0

是,你應該使用一個查詢,而不是兩個。 嘗試添加更多的數據,特別是使用一個查詢而不是另一個查詢的數據 – erKURITA