gpt4 book ai didi

MYSQL update into select 3 tables

转载 作者:行者123 更新时间:2023-11-29 01:42:50 27 4
gpt4 key购买 nike

我使用此查询(插入到选择的 3 个表中)将我的行插入到 mysql 表中。

"INSERT INTO test (catid_1, descat_1, catid_2, descat_2, id_user, user)
SELECT '$_POST[cat_1]',t1.desc AS descat_1, '$_POST[cat_2]', t2.desc AS descat_2,
$_POST[id_user]',t3.user FROM t1, t2, t3
WHERE t1.idcat_1='$_POST[cat_1]' and t2.idcat_2='$_POST[cat_2]'
and t3.id_user='$_POST[id_user]'";

现在我想使用相同的逻辑来更新 mysql 表中的行(更新到 select 3 表)。

表格结构

t1
`idcat_1` int(11) NOT NULL AUTO_INCREMENT,
`desc` varchar(100) NOT NULL,
PRIMARY KEY (`idcat_1`)

t2
`idcat_2` int(11) NOT NULL AUTO_INCREMENT,
`idcat_1` int(11) NOT NULL,
`desc` varchar(100) NOT NULL,
PRIMARY KEY (`idcat_2`)

t3
`id_user` int(11) NOT NULL AUTO_INCREMENT,
`user` varchar(40) NOT NULL,
PRIMARY KEY (`id_user`)

可以吗?

谢谢

最佳答案

像这样:

UPDATE test AS t
INNER JOIN t1 ON -- join conditon
INNER JOIN t2 ON ...
INNER JOIN t3 ON ...
SET t.catid_1 = '$_POST[cat_1]',
t.descat_1 = t1.desc,
....
WHERE t1.idcat_1='$_POST[cat_1]'
and t2.idcat_2='$_POST[cat_2]'
and t3.id_user='$_POST[id_user]'

不清楚这四个表是如何连接的,您需要为每个JOIN 提供连接条件。


更新1

从您刚刚在更新的问题中发布的表结构来看,这三个表似乎都不是 testt1t2 通过任意键与表 t3 相关。在此键中,您不需要加入此表t3,只需加入表testt1t2。假设:

  • testt1 相关,test.catid_1 = t1.idcat_1
  • t1t2 相关,t1.idcat_1 = t2.idcat_1

像这样:

UPDATE test AS t
INNER JOIN t1 ON t.catid_1 = t1.idcat_1
INNER JOIN t2 ON t1.idcat_1 = t2.idcat_1
SET t.catid_1 = '$_POST[cat_1]',
t.descat_1 = t1.desc,
....
WHERE t1.idcat_1='$_POST[cat_1]'
and t2.idcat_2='$_POST[cat_2]'

关于MYSQL update into select 3 tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14955628/

27 4 0