Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何基于另一个表的ID(作为外键)插入到一个表中?_C#_Mysql_Winforms_Sql Update_Ddl - Fatal编程技术网

C# 如何基于另一个表的ID(作为外键)插入到一个表中?

C# 如何基于另一个表的ID(作为外键)插入到一个表中?,c#,mysql,winforms,sql-update,ddl,C#,Mysql,Winforms,Sql Update,Ddl,我正在尝试在c游戏中创建一些角色。我有两个表,tbl_user处理用户信息,tbl_player是他们的角色。这些表格如下所示: 表1: CREATE TABLE `tbl_user` ( `userID` INTEGER NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `user_password` VARCHAR(20) NOT NULL, `user_email` VARCHAR(20) N

我正在尝试在c游戏中创建一些角色。我有两个表,tbl_user处理用户信息,tbl_player是他们的角色。这些表格如下所示:

表1:

CREATE TABLE `tbl_user` (
    `userID` INTEGER NOT NULL AUTO_INCREMENT,
    `username` VARCHAR(50) NOT NULL,
    `user_password` VARCHAR(20) NOT NULL,
    `user_email` VARCHAR(20) NOT NULL,
    `user_loginStatus` tinyint(1) default false NOT NULL,
    `user_loginAttempts` INTEGER DEFAULT 0 NOT NULL,
    `user_accountStatus` tinyint(1) NOT NULL,
    `user_isAdmin` tinyint(1) default false NOT NULL,
    PRIMARY KEY (`userID`)
);
表2:

CREATE TABLE `tbl_player` (
    `playerID` INTEGER NOT NULL AUTO_INCREMENT,
    `player_score` INTEGER DEFAULT 0 NOT NULL,
    `Character` VARCHAR(20) default null,
    `gameID` INTEGER default null,
    `tileID` INTEGER default null,
    `userID` INTEGER NOT NULL,
    PRIMARY KEY (`playerID`),
    FOREIGN KEY (`gameID`) REFERENCES `tbl_game`(`gameID`) ON DELETE CASCADE  ,
    FOREIGN KEY (`tileID`) REFERENCES `tbl_tile`(`tileID`) ON DELETE CASCADE  ,
    FOREIGN KEY (`userID`) REFERENCES `tbl_user`(`userID`) ON DELETE CASCADE  
);
我想根据用户表中的用户名插入播放器详细信息,即字符、tileID和userID。当我执行内部联接时,这是我从这个ddl脚本得到的结果:

SELECT * FROM tbl_player INNER JOIN tbl_user ON tbl_player.userID = tbl_user.userID;
有没有一种方法可以让我从tbl_user中选择username,并根据匹配的ID和匹配该ID的用户名在tbl_player中设置值?我尝试过这个,但我认为它在MySQL中不起作用,或者语法错误:

UPDATE tbl_player SET gameID = 1, tileID =0, `Character` = "Wizard" FROM tbl_player INNER JOIN tbl_user ON tbl_player.userID = tbl_user.userID WHERE username = "example",

您希望在tbl_玩家表中设置哪些值?硬编码的是这样的:gameID=1,tileID=0,Character=Wizard还是?是的,当用户创建一个角色时,这三个角色会在一个字段中输入用户名,这就是我想要连接两个表的方式,而不是在他们的IDI上进行连接。这可能吗@您是否使用MySQL或Microsoft SQL Server?MySQL不支持更新。。。据我所知,从你使用的语法来看。您需要使用类似于更新tbl\u player p JOIN tbl\u user u ON p.userID=u.userID SET p.gameID=1,p.titleID=0,p.`Character`='Wizard',其中u.username='example'