mysqli 查询加入两个唯一键
mysqli query join with two unique key
大家好,我的网页上有这个查询
$otherupdates=mysqli_query
($conn,"
SELECT f.sender,f.receiver,f.field,m.name
FROM friend f,members m
WHERE ((f.sender IN ($variable) OR f.receiver IN ($variable))
AND ( f.field='friends' || f.field='fan')
AND ( f.date > '$adatevariable' AND f.sender=m.id))
ORDER BY date DESC LIMIT 16"
);
$variable="'1','2','3'......"; // not important
$adatevariable=date('d', strtotime($today . ' - 2 day'));// not imp
这个查询所做的是,获取所有与 where 子句匹配的行,还获取发件人的姓名 (f.sender=m.id),但我也想要接收方的姓名仅查询我不需要另一个查询..
这可行吗,请帮忙
如果您将查询更改为:
select
f.sender,
f.receiver,
f.field,
senders.name AS sender_name,
recievers.name AS recievers_name
from
friend f
INNER JOIN members senders ON f.sender=senders.id
INNER JOIN members recievers ON f.receiver = recievers.id
where
(f.sender IN ($variable) or f.receiver IN ($variable))
and f.field IN ('friends', 'fan')
and f.date > '$adatevariable'
order by
date desc
limit 16
这样做是允许您访问 members
table 两次,一次作为 senders
,另一次作为 recievers
。通过将这些加入 friend
table 的 sender
和 reciever
字段,senders
将拥有发件人的所有信息,而 recievers
将有接收者的所有信息。
大家好,我的网页上有这个查询
$otherupdates=mysqli_query
($conn,"
SELECT f.sender,f.receiver,f.field,m.name
FROM friend f,members m
WHERE ((f.sender IN ($variable) OR f.receiver IN ($variable))
AND ( f.field='friends' || f.field='fan')
AND ( f.date > '$adatevariable' AND f.sender=m.id))
ORDER BY date DESC LIMIT 16"
);
$variable="'1','2','3'......"; // not important
$adatevariable=date('d', strtotime($today . ' - 2 day'));// not imp
这个查询所做的是,获取所有与 where 子句匹配的行,还获取发件人的姓名 (f.sender=m.id),但我也想要接收方的姓名仅查询我不需要另一个查询..
这可行吗,请帮忙
如果您将查询更改为:
select f.sender, f.receiver, f.field, senders.name AS sender_name, recievers.name AS recievers_name from friend f INNER JOIN members senders ON f.sender=senders.id INNER JOIN members recievers ON f.receiver = recievers.id where (f.sender IN ($variable) or f.receiver IN ($variable)) and f.field IN ('friends', 'fan') and f.date > '$adatevariable' order by date desc limit 16
这样做是允许您访问 members
table 两次,一次作为 senders
,另一次作为 recievers
。通过将这些加入 friend
table 的 sender
和 reciever
字段,senders
将拥有发件人的所有信息,而 recievers
将有接收者的所有信息。