如何管理查询?

时间:2011-05-13 14:47:00

标签: php mysql

$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。

请建议。

谢谢

4 个答案:

答案 0 :(得分:2)

我真的怀疑你在phpmyadmin中得到不同的mem_id和frm_id,因为这是在你的where子句中:

 m.frm_id=me.mem_id

我对你的表结构一无所知,但对我来说很明显frm_id和mem_id必须相同才能使查询返回一些内容!

答案 1 :(得分:1)

只尝试选择您想要的字段

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

使用m.mem_id AS m_mem_id来避免覆盖具有相同名称的字段。

答案 2 :(得分:1)

你有条件:

   ...AND m.frm_id=me.mem_id

不要徘徊,他们是一样的。

答案 3 :(得分:0)

如果您正在连接表格,并且这些已连接的表格中有两个或更多重复的字段名称,则应使用别名来区分它们

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

在您提取的数组中为您提供mem_id1mem_id2