[英]Inner, outer or full join on three tables in MySQL database on linux with apache
我想在创建查询时获得一些帮助,以从共享相同信息的三个不同表中获取信息。 我的第一张桌子是:
auctions
id title description user_id(who posted it)
我的第二张桌子是:
bids
id user_id bid auction_id owner_id
我的第三张桌子是:
users
id username X XX XXX XXXX
...而我的SQL如下,但是它不返回任何结果:
SELECT auction_bids.user_id AS applicant, auction_bids.*, auctions.title FROM auction_bids, auctions
WHERE auctions.user_id=".$_SESSION['userid']."
INNER JOIN users ON auction_bids.user_id = users.id
WHERE auction_bids.owner_id = ".$_SESSION['userid']."
我需要捕获拍卖的标题,在拍卖中出价的用户名和出价。 拍卖必须有一个出价,并由拥有$ _SESSION ['userid']的用户发布。 任何帮助表示赞赏。
您有两个不同的“ where”语句,可能只需要合并即可;
SELECT auction_bids.user_id AS申请人,auction_bids。*,auctions.title来自auction_bids,拍卖INNER JOIN用户ON auction_bids.user_id = users.id WHERE auction_bids.owner_id =“。$ _ SESSION ['userid']。” AND auctions.user_id =“。$ _ SESSION ['userid']。”
但是,我不确定这是否真的是您想要的,因为它只会返回特定用户既“拥有”该商品并对其进行了出价的记录(均基于userid会话),而不是显示来自该用户的所有记录对用户“拥有”的商品进行出价的不同人员。
就像是: ? SELECT auction_bids.user_id作为AS申请人,auction_bids。*,auctions.title来自auction_bids,拍卖INNER JOIN用户,放在auction_bids.user_id = users.id,WHERE auction.owner_id =“。$ _ SESSION ['userid']”。
希望这能为您指明正确的方向!
您有2个where子句,这是不正确的。 我已根据您的要求修改了您的查询。
SELECT auction_bids.user_id AS applicant, auction_bids.*, auctions.title
FROM auction_bids, auctions
INNER JOIN users ON auction_bids.owner_id = users.id
WHERE auction_bids.owner_id = ".$_SESSION['userid']."
AND auctions.user_id=auctions_bids.owner_id
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.