2011-05-13 32 views
1
$query_message23 = "select * from messages_system as m, members as me where m.mes_id='$messageId' AND m.frm_id=me.mem_id"; 

它給輸出如何管理查詢?

Array ([mes_id] => 826 [mem_id] => 334 [frm_id] => 334 [subject] => Re: Re: Re: Re: Re: Hola! [body] => i dno i just made it up lollllllllllllllllllll 

Artin wrote: 

Haha.. Dooskie??? Is that Russian? lol 

aurita wrote: 

PFFFFFFT!!!!!!!!!!! 
YOU KNOW HOW I DOOSKIE! LMAO! 

你可以看到,mem_id和frm_id是相同的。怎麼樣?我很困惑。當我在phpmyadmin中運行這個查詢時,我從messages_system和members表中得到了mem_id 48和frm_id 334(因爲我加入了2個表)mem_id 334,所以我認爲這個成員的mem_id覆蓋了messages_system mem_id。

請建議。

感謝

回答

0

如果你要加入表,有兩個或兩個以上重複的字段名稱在這些連接的表,你應該使用別名來區分它們

SELECT table1.mem_id AS mem_id1, table2.mem_id AS mem_id2 
FROM ... 

,讓你mem_id1mem_id2在獲取陣列。

1

嘗試僅僅選擇你想要的字段,

SELECT m.mes_id, me.mem_id, m.frm_id, m.subject, m.body FROM ...

使用m.mem_id AS m_mem_id避免重寫同名領域。

2

我真的懷疑你在phpMyAdmin得到不同mem_id和frm_id因爲這是你的WHERE子句中:

m.frm_id=me.mem_id 

我什麼都不知道你的表結構,但很明顯,我認爲frm_id和mem_id必須同樣爲了查詢返回一些東西!

1

你有一個條件:

...AND m.frm_id=me.mem_id 

無漂移它們是相同的。