Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP&;从两个表中获取信息;MySQL_Php_Mysql_Database - Fatal编程技术网

使用PHP&;从两个表中获取信息;MySQL

使用PHP&;从两个表中获取信息;MySQL,php,mysql,database,Php,Mysql,Database,我想知道你是否能帮我回答一个关于PHP和MySQL的问题。我试图在一个网站收件箱的整体查询中从两个表中获取信息。这意味着我要从messages表中查找:发件人、收件人、邮件、时间等 从第二个表中,我想找到发送者的实际姓名、成员类型、年龄,以及其他一些数据 谁能帮我解决这个问题。我已经读到,也许我需要使用Join或Join Left来连接表,但无法准确地计算出它如何适用于我的示例 假设OtherTable包含一个UserId字段,其值等于MessagesTable中的Sender: SELECT

我想知道你是否能帮我回答一个关于PHP和MySQL的问题。我试图在一个网站收件箱的整体查询中从两个表中获取信息。这意味着我要从messages表中查找:发件人、收件人、邮件、时间等

从第二个表中,我想找到发送者的实际姓名、成员类型、年龄,以及其他一些数据


谁能帮我解决这个问题。我已经读到,也许我需要使用Join或Join Left来连接表,但无法准确地计算出它如何适用于我的示例

假设
OtherTable
包含一个
UserId
字段,其值等于
MessagesTable
中的
Sender

SELECT Sender, Recipient, ..., Name, MemberType, ... FROM MessagesTable
LEFT JOIN OtherTable ON OtherTable.UserId = MessagesTable.Sender

您需要某种类型的联接,例如:

SELECT messages.sender, messages.recipient, users.name FROM messages JOIN users ON users.id = messages.user_id

看看这个,绝对值得一个书签。

非常感谢-这个答案加上一个例子非常有帮助。不过有一个或两个问题-在这种情况下,*语句仍然有效,还是您必须键入每一列,即选择*、名称、成员类型等。。。从MessagesTable。。如果添加到末尾,WHERE仍然有效吗?@user2184018,当然,
*
WHERE
仍然可以使用。@user2184018,请注意,如果
MessagesTable
中的列与
OtherTable
中的列具有相同的名称,则大多数驱动程序默认情况下只返回最后一列的值。在这种情况下,您应该考虑使用<代码>作为别名/代码>别名。在这种情况下,我不认为任何栏目都是这样做的,但谢谢您提供的信息,知道这一点非常有用,我相信它会很方便,所以我会看一看-再次感谢。