MYSQL 改变 table 与 JOIN
MSQL alter table with JOIN
我正在尝试用另一个 table 的列更新 table。我不想查看连接,我想更改 table.
但是,这是失败的:
UPDATE
a_dataset
SET
a_dataset.lang_flag = b_dataset.language
FROM
a_dataset
INNER JOIN
b_dataset
ON
a_dataset.ID = b_dataset.ID
但是,我一直收到语法错误,无法找到我遗漏的内容?
我猜你说 alter the table
的意思是更新你的记录。如果是这样,您可以像这样使用 join 重写更新语句:
UPDATE a_dataset a
JOIN b_dataset b ON a.ID = b.ID
SET a.lang_flag = b.[LANGUAGE]
正如 Uueerdo 和我自己所说:table 名称以数字开头是一个糟糕的[TM] 主意。对于您现在选择使用的字母也是如此。 a 在这方面并不比 1 好。同样调用 tables 只是 "dataset" 也不是很有帮助。 table 存储什么?用户?然后称之为用户。新闻网站上的文章?然后称之为文章。等等。数据库中的一切都是数据集,不需要告诉任何人。
我猜你是 SQL 的新手,对吗?因为另一个问题是:除非你打算在这个命令之后删除 table b_dataset,否则你可能正在做一些你在关系数据库中不应该做的事情。整个想法是只存储所有数据一次。如果您可以自动将列从 b 复制到 a,那么您也可以在需要时 select join if from a 和 b 而不是复制它。
为了学习 SQL(或其他任何东西),Stack Overflow 可能是一个糟糕的地方(不过在这个过程中提问是好的),所以我建议你去找有经验的人在 SQL 中教你,或获取有关 SQL 的书籍/教程。乍一看,这似乎是一本不错的在线书籍:http://sql.learncodethehardway.org/ - 但我没读过。
我正在尝试用另一个 table 的列更新 table。我不想查看连接,我想更改 table.
但是,这是失败的:
UPDATE
a_dataset
SET
a_dataset.lang_flag = b_dataset.language
FROM
a_dataset
INNER JOIN
b_dataset
ON
a_dataset.ID = b_dataset.ID
但是,我一直收到语法错误,无法找到我遗漏的内容?
我猜你说 alter the table
的意思是更新你的记录。如果是这样,您可以像这样使用 join 重写更新语句:
UPDATE a_dataset a
JOIN b_dataset b ON a.ID = b.ID
SET a.lang_flag = b.[LANGUAGE]
正如 Uueerdo 和我自己所说:table 名称以数字开头是一个糟糕的[TM] 主意。对于您现在选择使用的字母也是如此。 a 在这方面并不比 1 好。同样调用 tables 只是 "dataset" 也不是很有帮助。 table 存储什么?用户?然后称之为用户。新闻网站上的文章?然后称之为文章。等等。数据库中的一切都是数据集,不需要告诉任何人。
我猜你是 SQL 的新手,对吗?因为另一个问题是:除非你打算在这个命令之后删除 table b_dataset,否则你可能正在做一些你在关系数据库中不应该做的事情。整个想法是只存储所有数据一次。如果您可以自动将列从 b 复制到 a,那么您也可以在需要时 select join if from a 和 b 而不是复制它。
为了学习 SQL(或其他任何东西),Stack Overflow 可能是一个糟糕的地方(不过在这个过程中提问是好的),所以我建议你去找有经验的人在 SQL 中教你,或获取有关 SQL 的书籍/教程。乍一看,这似乎是一本不错的在线书籍:http://sql.learncodethehardway.org/ - 但我没读过。