gpt4 book ai didi

mysql - 内连接未给出预期结果

转载 作者:行者123 更新时间:2023-11-29 11:14:47 24 4
gpt4 key购买 nike

产品表

enter image description here

产品表链接

enter image description here

enter image description here

这是存储在数据库内的product_table数据。

enter image description here

这是数据库中存在的product_table_link数据。我试图将这两个表连接起来,其中product code=something。例如,让我们采取xyz 作为产品。

我希望得到两者的组合结果,不存在任何空值。

我尝试过:

SELECT s1.* FROM (SELECT p1.* FROM product_table p1 INNER JOIN product_table_link p2 
ON p1.product_code=p2.product_code ) s1 WHERE product_code="xyz"

但结果不是两个表的组合,而是显示了product_table

CREATE TABLE `product_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`product_name` varchar(60) NOT NULL,
`product_code` varchar(60) NOT NULL,
`product_description` text,
`product_type` varchar(20) NOT NULL,
`product_image_path` varchar(60) NOT NULL,
`product_company_name` varchar(20) NOT NULL,
`product_company_id` varchar(60) NOT NULL,
`product_landing_page` varchar(15) NOT NULL,
`product_shape` varchar(20) DEFAULT NULL,
`product_flavour` varchar(20) NOT NULL,
`product_veg_mark` varchar(8) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique` (`product_code`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

CREATE TABLE `product_table_link` (
`product_code` varchar(60) NOT NULL,
`product_weight` varchar(5) NOT NULL,
`product_price` int(5) NOT NULL,
`product_quantity` int(5) NOT NULL,
PRIMARY KEY (`product_code`,`product_weight`),
CONSTRAINT `product_table_link_ibfk_1` FOREIGN KEY (`product_code`) REFERENCES `product_table` (`product_code`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

如何获得两个表的合并结果?

最佳答案

将子查询更改为此

SELECT * FROM product_table p1 INNER JOIN product_table_link p2 
ON p1.product_code=p2.product_code

您刚刚从p1中进行选择。

您正在执行 select p1.* ,它只会从 p1 中选择行。内连接意味着您希望根据某些条件从不同的表中选择行。您需要执行select *,这将选择从连接条件过滤的所有行。

您的简化最终查询。

SELECT s1.* FROM (SELECT p1.*,p2.product_weight,p2.product_price,p2.product_quantity 
FROM product_table p1 INNER JOIN product_table_link p2
ON p1.product_code=p2.product_code)
s1 WHERE s1.product_code="xyz"

关于mysql - 内连接未给出预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39942349/

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