从2个表中获取信息

时间:2010-01-05 16:06:51

标签: php select

使用某些select语句时遇到问题。

我有2张桌子。 sms_log和sms_messages。

sms_log:

id
message_id
user_id

sms_messages:

message_id
admin_id
message
date_sent
date_delivered

我想获取sms_log.user_id = $ id

的sms_message数据

我该怎么做,我有点卡住了。另外,我将如何通过php访问它,与标准查询完全相同,或者在单元格前面使用表名:

    `
echo $myrow['sms_messages.message'];

OR

echo $myrow['message'];

thankyou!

3 个答案:

答案 0 :(得分:1)

首先,您需要在messageId上的SMS_MESSAGe和SMS_LOG表上执行内部联接。这看起来像这样:

SELECT m.Message 
FROM sms_Messages me
INNER JOIN sms_Log l ON l.Message_Id = m.Message_Id
Where l.user_Id = $id;

此时,在 myrow 变量中,您将访问以下消息:

echo $myrow['message'];

答案 1 :(得分:1)

select m.message as message
, m.date_sent as date_sent
FROM sms_messages as m
LEFT JOIN sms_log as l
ON m.message_id = l.message_id
WHERE l.user_id = $id

您仍然可以按照预期访问阵列:

echo $arr['message'] ' sent on ' $arr['date_sent'] ;

答案 2 :(得分:1)

尽管斯蒂芬勇敢地尝试,但根据您提供的信息无法确定如何加入这两个表格。每个表中都有名为message_id的列的事实意味着它可能是一个中的外键而不是另一个中的外键。

是否为表声明了主键?任何独特的指数?

这是您自己的数据设计还是其他人?列的数据类型是什么?您使用的DBMS是什么?是否从序列生成器或mysql自动增量填充了任何列?

这些表实际上表示什么(好的短信 - 我明白了,但他们只是来了吗?

下进行。