我的3张表,即产品,乐队,产品信息
产品
CREATE TABLE IF NOT EXISTS `product` (
`p_id` int(11) NOT NULL AUTO_INCREMENT,
`product` varchar(50) NOT NULL,
PRIMARY KEY (`p_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `product` (`p_id`, `product`) VALUES
(1, 'Atta'),
(2, 'OIl');
品牌
CREATE TABLE IF NOT EXISTS `brand` (
`b_id` int(11) NOT NULL AUTO_INCREMENT,
`p_id` int(11) NOT NULL,
`brand` varchar(50) NOT NULL,
`image` varchar(255) NOT NULL,
PRIMARY KEY (`b_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
插入
INSERT INTO `brand` (`b_id`, `p_id`, `brand`, `image`) VALUES
(1, 1, 'Ashirvad', 'FreeVector-Blue-Squares-Vector.jpg'),
(2, 1, 'Phillsberry', 'ILBAGNOALESSI_One_02.jpg'),
(3, 2, 'Sunflower', '001-bi-fold-corporate-brochure-template-vol-1-2.jpg');
产品信息
CREATE TABLE IF NOT EXISTS `product_info` (
`pi_id` int(11) NOT NULL AUTO_INCREMENT,
`pro` int(11) NOT NULL,
`b_id` int(11) NOT NULL,
`quantity` varchar(20) NOT NULL,
`measurement` varchar(20) NOT NULL,
`mrp` varchar(20) NOT NULL,
`our_price` varchar(20) NOT NULL,
PRIMARY KEY (`pi_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
插入
INSERT INTO `product_info` (`pi_id`, `pro`, `b_id`, `quantity`, `measurement`, `mrp`, `our_price`) VALUES
(1, 1, 1, '1', 'kg', '50', '48'),
(2, 1, 2, '1', 'kg', '60', '59'),
(3, 2, 3, '1', 'ltr', '90', '86');
当我使用以下查询时
select a.product,a.p_id,b.b_id,b.brand,b.image,c.quantity,c.measurement,c.mrp,c.our_price,c.pi_id
from product a, brand b,product_info c
where a.p_id=b.p_id
获得3个数据循环
答案 0 :(得分:1)
您需要product_info
的连接条件,否则您将每个product_info
行加入其他表中的行。
select a.product,a.p_id,b.b_id,b.brand,b.image,c.quantity,c.measurement,c.mrp,c.our_price,c.pi_id
from product a, brand b,product_info c
where a.p_id=b.p_id
and b.b_id = c.b_id
此外,您应该学习使用ANSI显式连接语法:
select a.product,a.p_id,b.b_id,b.brand,b.image,c.quantity,c.measurement,c.mrp,c.our_price,c.pi_id
from product a
join brand b ON a.p_id = b.p_id
join product_info c ON b.b_id = c.b_id
答案 1 :(得分:0)
现在您从所有三个表中获取数据。使用joins制作所需的结果表。