gpt4 book ai didi

php - 三张表内连接

转载 作者:行者123 更新时间:2023-11-29 12:47:27 25 4
gpt4 key购买 nike

我有三个表“user”、“bidding”和“item”。我需要找到查询才能为买家获取已完成的元素拍卖。在我的数据库中找到这个的方法如下:item.received=1 AND u.userid=X(这个X将从我的PHP中填写,它给出了最高出价的用户ID)。 (请注意,received=1 意味着截止日期已过,因此不再需要进行此检查)。

系统的简短说明:这是一个拍卖网站,用户可以在其中对元素进行出价,并且在用户的个人帐户页面上我想显示他购买的拍卖金额(并进行处理,从而完成)。

这 3 个表如下所示:

CREATE TABLE user (
userid INT NOT NULL AUTO_INCREMENT,
username CHAR(30) NOT NULL UNIQUE,
password CHAR(32) NOT NULL,
firstname CHAR(30) NOT NULL,
lastname CHAR(30) NOT NULL,
gender CHAR(1) NOT NULL,
email CHAR(50) NOT NULL UNIQUE,
birthdate DATE NOT NULL,
addressid INT NOT NULL,
picture CHAR(50),
lastlogin TIMESTAMP NOT NULL,
role CHAR(30),
paymentid INT NOT NULL,

PRIMARY KEY (userid),
FOREIGN KEY (addressid)
REFERENCES address(addressid),
FOREIGN KEY (paymentid)
REFERENCES payment(paymentid)
);

CREATE TABLE item (
itemid INT NOT NULL AUTO_INCREMENT,
name CHAR(40) NOT NULL,
description CHAR(255) NOT NULL,
originalpurchasedate DATE,
deadline TIMESTAMP NOT NULL,
minprice DOUBLE,
received BOOLEAN NOT NULL,
dateadded TIMESTAMP NOT NULL,
openbidding BOOLEAN NOT NULL,
categoryid INT NOT NULL,
ownerid INT NOT NULL,

PRIMARY KEY (itemid),
FOREIGN KEY (categoryid)
REFERENCES category(categoryid),
FOREIGN KEY (ownerid)
REFERENCES user(userid)
);

CREATE TABLE bidding (
userid INT NOT NULL,
itemid INT NOT NULL,
amount DOUBLE,
bidtime TIMESTAMP NOT NULL,

FOREIGN KEY (userid)
REFERENCES user(userid),
FOREIGN KEY (itemid)
REFERENCES item(itemid)
);

我已经有的故障解决方案是:结果是 3 行,结果是: 3 、 1 、 5。我期望得到的解决方案只能是 1 行,包含不同项目的数量。

SELECT DISTINCT COUNT(u.userid) FROM `item` i 
INNER JOIN `bidding` b ON i.itemid = b.itemid
INNER JOIN `user` u ON b.userid = u.userid
WHERE i.received=1 AND u.userid=2
GROUP BY i.itemid

最佳答案

您需要将查询更改为根据用户 ID 而不是项目 ID 进行分组,并对不同的项目而不是不同的用户进行计数。

SELECT DISTINCT COUNT(i.itemid) FROM `item` i 
INNER JOIN `bidding` b ON i.itemid = b.itemid
INNER JOIN `user` u ON b.userid = u.userid
WHERE i.received=1 AND u.userid=2
GROUP BY u.userid

关于php - 三张表内连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25248299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com