繁体   English   中英

编写SQL查询

[英]Writing a SQL Query

我有两个表:

product_description(name, product_id

产品(数量,库存状态ID,价格, 产品 ID)

我想做的是运行一个查询,该查询将获取上述数据,但是我不确定如何实现联接以从两个表中获取联接数据。

解决

我做了以下工作:

SELECT product_description.name, product.quantity,product.price
FROM product
INNER JOIN product_description
ON product.product_id=product_description.product_id
ORDER BY product_description.name 

假设您在每个表中都有匹配的product_id ,则此查询将使用隐式连接返回您需要的数据:

SELECT product.product_id, name, quantity, stock_status_id, price
FROM product, product_description
WHERE product.product_id = product_description.product_id

更新:

正如我所期望的那样。 这是两个可能对您有帮助的表转储,以及查询的输出。

产品表:

--
-- Table structure for table `product`
--

CREATE TABLE IF NOT EXISTS `product` (
  `product_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(256) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`product_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=3 ;

--
-- Dumping data for table `product`
--

INSERT INTO `product` (`product_id`, `name`) VALUES
(1, 'Croissant'),
(2, 'Danish');

product_description表:

--
-- Table structure for table `product_description`
--

CREATE TABLE IF NOT EXISTS `product_description` (
  `product_id` int(11) NOT NULL,
  `quantity` int(11) NOT NULL,
  `stock_status_id` int(11) NOT NULL,
  `price` double NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- Dumping data for table `product_description`
--

INSERT INTO `product_description` (`product_id`, `quantity`, `stock_status_id`, `price`) VALUES
(1, 6, 2, 12.5),
(2, 13, 1, 19.25);

以上查询的输出:

"1","Croissant","6","2","12.5"
"2","Danish","13","1","19.25"

也许像这样?

select p.id, p.quantity, p.stock_status_id, p.price, d.name
from Product p inner join `Product Description` d on d.product_id=p.id

尽管我仍然不确定问题描述中的表架构实际上是什么样子。

SELECT
   -- name each column you want here
   -- prefix columns from the PRODUCT table with its alias like so:
   p.product_id,

   -- prefix columns from the other table as its alias
   d.quantity
FROM
    PRODUCT p  -- name of your PRODUCT table aliased as p
INNER JOIN     -- join against your other table
    PRODUCT_DESCRIPTION d -- name of your other table aliased as d
ON
    p.product_id = d.product_id -- match the foreign keys

有关更多详细信息,请参见INNER JOIN文档。

注意:这将不能按原样工作,您需要在SELECT子句中提供每个表中所需的列,并可能修复表名以使其与您的应用程序匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM