gpt4 book ai didi

php - mysql 中的多对多查询

转载 作者:行者123 更新时间:2023-11-29 16:15:44 25 4
gpt4 key购买 nike

我有两个表:

用户

user_id INT(11) PRIMARY KEY AUTO_INCREMENT,
user_name VARCHAR(45) NOT NULL,
user_pass VARCHAR(255) NOT NULL,
user_mail VARCHAR(100) NOT NULL,
user_dpto VARCHAR(100) NOT NULL,
user_resp BOOLEAN NOT NULL,
token VARCHAR(100)

关怀

sol_id INT(11) PRIMARY KEY AUTO_INCREMENT,
random_number INT(11) NOT NULL,
asunto VARCHAR(45) NOT NULL,
emision_date DATETIME NOT NULL,
state VARCHAR(45) NOT NULL,
state_date DATETIME NOT NULL,
tercero BOOLEAN NOT NULL,
nombre_tercero VARCHAR(100),
fecha_solicitud_tercero DATE,
fecha_limite DATE

users_slicitudes

user_id INT(11),
sol_id INT(11),
rol BOOLEAN,
PRIMARY KEY (user_id, sol_id)

在最后一个表中,如果提出请求的人,则 rol 为 0;如果是接受请求的人,则 rol 为 1。

关心(请求)是向特定部门(在本例中为支持部门)提出的请求。我正在制作一个仪表板,管理员可以在其中看到所有“关心”,其中显示提出请求的人和接受该请求的人(最后一个可以是多个人)。

问题是我找不到一种方法来进行查询以在同一行中显示提出请求的人和接受请求的人(最简单的情况)。最后,表格必须是这样的:

user_who_made_request|asunto|user_who_took_it|state|state_date

我看过其他答案,但无法得到我想要的结果。也许比我想象的更简单。我将不胜感激任何帮助。

最佳答案

如果每个请求只有一个用户可以发出该请求,则无需将其存储在额外的表中。为接受请求的用户保留额外的表。

我会消除您以这种方式设置表格的问题:

CREATE TABLE solicitudes (
sol_id INT(11) PRIMARY KEY AUTO_INCREMENT,
user_id INT(11) NOT NULL, // the user who makes that request
random_number INT(11) NOT NULL,
asunto VARCHAR(45) NOT NULL,
emision_date DATETIME NOT NULL,
state VARCHAR(45) NOT NULL,
state_date DATETIME NOT NULL,
tercero BOOLEAN NOT NULL,
nombre_tercero VARCHAR(100),
fecha_solicitud_tercero DATE,
fecha_limite DATE
);

CREATE TABLE user_solicitudes(
user_id INT(11),
sol_id INT(11)
// rol BOOLEAN - no need for the role field anymore, as you'd only store those who took the request here.
);

关于php - mysql 中的多对多查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54807975/

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