我有两张桌子。 1.category
和2.product
。其中我有一个共同的column
,即categorycode
。在product
我插入了许多属于category
的产品,但我希望在与categoryname
对应的列中显示其categorycode
答案 0 :(得分:1)
Select p.*, c.categoryname From product as p
Inner Join category as c ON c.categorycode = p.categorycode
答案 1 :(得分:1)
这是您案例的首选架构:
现在这是创建SQL:
CREATE TABLE `tblcategorycode` (
`categoryid` int(11) NOT NULL AUTO_INCREMENT,
`categorycode` varchar(45) NOT NULL,
`categoryname` varchar(45) DEFAULT NULL,
PRIMARY KEY (`categoryid`),
UNIQUE KEY `categorycode_UNIQUE` (`categorycode`)
);
CREATE TABLE `tblproductmaster` (
`productid` int(11) NOT NULL AUTO_INCREMENT,
`productcode` varchar(45) NOT NULL,
`productname` varchar(45) DEFAULT NULL,
`categoryid` int(11) NOT NULL,
PRIMARY KEY (`productid`),
UNIQUE KEY `productcode_UNIQUE` (`productcode`),
KEY `fkk_idx` (`categoryid`),
CONSTRAINT `fkk` FOREIGN KEY (`categoryid`) REFERENCES `tblcategorycode` (`categoryid`) ON DELETE NO ACTION ON UPDATE NO ACTION
);
如果你喜欢这个架构,那么使用这样的简单查询:
SELECT p.*, c.categoryname
FROM test.tblproductmaster p
INNER JOIN tblcategorycode c ON p.categoryid = c.categoryid;
你会得到你想要的东西。
但请确保categoryid
列是2个表的链接部分,它必须包含父表和子表中的相同值