Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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
Mysql 用条件连接和查询两个表_Mysql_Database_Laravel - Fatal编程技术网

Mysql 用条件连接和查询两个表

Mysql 用条件连接和查询两个表,mysql,database,laravel,Mysql,Database,Laravel,表1: users(id, fname,lname) 表2: messages(id, body,sender_id, receiver_id) .. 注意:-表1中的发送方id和接收方id参考id select * from messages where receiver_id = 3 给我一个结果 我不希望发件人id作为id,但作为用户表中的fname和lame您可以通过使用来实现这一点,您可以使用下面的查询,为了更清楚起见,我在这里为用户创建发件人别名 select m.id,m.

表1:

users(id, fname,lname)
表2:

messages(id, body,sender_id, receiver_id) .. 
注意:-表1中的发送方id和接收方id参考id

select *
from messages
where receiver_id = 3
给我一个结果


我不希望发件人id作为id,但作为用户表中的fname和lame

您可以通过使用来实现这一点,您可以使用下面的查询,为了更清楚起见,我在这里为用户创建发件人别名

select m.id,m.body,u.fname,u.lname from messages m
inner join users u on u.id=m.sender_id
where m.receiver_id = 3
    select m.id, m.body, m.receiver_id, sender.fname, sender.lname
    from messages m
    inner join users sender on sender.id=m.sender_id
    where m.receiver_id = 3

如果我没有弄错,您正在请求内部联接。请从用户上的消息内部联接用户中选择messages.id、messages.body、users.fname、users.lname。id=message.sender\u id,其中messages.receiver\u id=3工作正常。。尽管这段代码可以解决这个问题,但一个好的答案应该总是包含一个解释。