使用某些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!
答案 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自动增量填充了任何列?
这些表实际上表示什么(好的短信 - 我明白了,但他们只是来了吗?
下进行。