gpt4 book ai didi

mysql - 在 SQL 中组合具有不同属性和大小的表

转载 作者:行者123 更新时间:2023-11-29 16:15:31 25 4
gpt4 key购买 nike

我有以下三个表:

Product(manufacturer,model,type)
Laptop(model,speed,ram,hd,price)
Printer (model,color,type,price)

正如您所看到的,产品表包含制造商名称及其制造的产品型号。类型属性仅指定是打印机还是笔记本电脑。现在,假设作为一名用户,我想要查找制造商“A”制造的所有产品(笔记本电脑和打印机),并且输出应该是一张表。使用 SQL 语句。

我感到困惑的是如何组合两个具有不同属性和列大小的表。截至目前,我刚刚找到制造商“A”的笔记本电脑和电脑型号:

SELECT * from Product P , Laptop L where P.model = L.model
SELECT * from Product P, Printer PR where P.model = PR.model

请注意,这是两个单独的查询。我只是不知道如何将它们结合起来。尝试了UNION,但这没有帮助

编辑:问题表明我需要打印型号、产品类型以及适合该类型的关系的所有属性。

最佳答案

您可以将 EXISTSUNION ALL 一起使用:

SELECT p.manufacturer, p.model, p.type
FROM product p
WHERE p.manufacturer = 'A' AND
EXISTS (SELECT 1 FROM laptop l WHERE l.model = p.model)
UNION ALL -- USE "UNION" IN ORDER TO REMOVE DUPLICATE ROW
SELECT p.manufacturer, p.model, p.type
FROM product p
WHERE p.manufacturer = 'A' AND
EXISTS (SELECT 1 FROM Printer pr WHERE pr.model = p.model);

关于mysql - 在 SQL 中组合具有不同属性和大小的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54833553/

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