所以我正在用mysql写一个小的学校项目。一般的想法是有一个简单的网站,在html方块中显示文本,其中关于它们的数据来自数据库(显示的文本和方块的背景色)。
我现在的代码如下所示:
带正方形的table:
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;
有颜色的table:
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中“打印”一个只包含“display”表中显示的文本和指定的颜色代码的表时,所有颜色代码都返回为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
我也试着和卡斯特一起工作,就像那样:
SELECT display.showcased_text, colors.color_code
FROM display
LEFT JOIN colors ON cast(display.assigned_color as VARCHAR(50)) = colors.color_code
但是mysql返回一个语法错误。。。我做错什么了?
2条答案
按热度按时间d5vmydt91#
在查询1中,您使用了错误的条件加入
在查询2中,不明白为什么要使用cast-in-join条件
von4xj4u2#
你想加入
color_code
字段输入colors
table。相反,它应该打开color_id
字段输入colors
table。