gpt4 book ai didi

mysql - MySQL 中的 Left Join 返回空值,但它们不应该返回空值

转载 作者:行者123 更新时间:2023-11-29 10:18:11 26 4
gpt4 key购买 nike

所以我正在使用 MySQL 编写一个小型学校项目。总体思路是建立一个简单的网站,在 html 方 block 中显示文本,其中有关它们的数据是从数据库中获取的(显示的文本和方 block 的背景颜色)。

我现在的代码如下所示:

带有正方形的表格:

CREATE TABLE `display` (
`display_id` int(50) NOT NULL,
`showcased_text` varchar(50) NOT NULL,
`assigned_color` int(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

带有颜色的表格:

CREATE TABLE `kolory` (
`color_id` int(50) NOT NULL,
`color_name` varchar(50) NOT NULL,
`color_code` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

还有一个代码可以在这两个表之间建立关系:

ALTER TABLE `display`
ADD CONSTRAINT `display_ibfk_1` FOREIGN KEY (`assigned_color`) REFERENCES `colors` (`color_id`);
COMMIT;

到目前为止,效果很好......但是,当我尝试在 PHPMyAdmin 中“打印”一个仅包含“显示”表中显示的文本和分配的颜色代码的表时,所有颜色代码都返回为 NULL。

The code looks like that:
SELECT display.showcased_text, colors.color_code
FROM display
LEFT JOIN colors ON display.assigned_color = colors.color_code

我也尝试过像这样与 CAST 合作,像这样:

SELECT display.showcased_text, colors.color_code
FROM display
LEFT JOIN colors ON cast(display.assigned_color as VARCHAR(50)) = colors.color_code

但是 MySQL 返回一个语法错误...我做错了什么?

最佳答案

您正在尝试加入 colors 表中的 color_code 字段。相反,它应该位于 colors 表中的 color_id 字段上。

SELECT display.showcased_text, colors.color_code
FROM display
LEFT JOIN colors ON display.assigned_color = colors.color_id

关于mysql - MySQL 中的 Left Join 返回空值,但它们不应该返回空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49794802/

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