Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在SQL上组合3个查询_Mysql_Sql - Fatal编程技术网

Mysql 在SQL上组合3个查询

Mysql 在SQL上组合3个查询,mysql,sql,Mysql,Sql,我有一张桌子,里面有产品和服务。我将产品品牌、产品名称和服务名称存储在单独的表格中 我通过此查询获取服务列表: SELECT maeinvs.idInv, CONCAT(services.Service, " ", maeinvs.Detail) AS Name FROM maeinvs INNER JOIN services ON services.idService = maeinvs.idService 以及使用此产品的产品列表: SELECT maeinvs.idInv, CONCAT

我有一张桌子,里面有产品和服务。我将产品品牌、产品名称和服务名称存储在单独的表格中

我通过此查询获取服务列表:

SELECT maeinvs.idInv, CONCAT(services.Service, " ", maeinvs.Detail) AS Name
FROM maeinvs
INNER JOIN services
ON services.idService = maeinvs.idService
以及使用此产品的产品列表:

SELECT maeinvs.idInv, CONCAT(brands.Brand, " ", products.Product, " ", maeinvs.Detail) AS Name
FROM maeinvs
INNER JOIN products
ON products.idProduct = maeinvs.idProduct
INNER JOIN brands
ON brands.idBrand = maeinvs.idBrand
我需要这样的查询,但是我需要的不是IDIV字段,而是产品或服务的实际名称。有什么想法吗

SELECT idInv, Desc, Qnty, Price
FROM invoicedetails
WHERE idInvoice = $id
谢谢

SELECT maeinvs.idInv, CONCAT(services.Service, " ", maeinvs.Detail) AS Name,
"" AS Desc, 0 AS Qnty, 0 AS Price
FROM maeinvs
INNER JOIN services
ON services.idService = maeinvs.idService
UNION
SELECT maeinvs.idInv, CONCAT(brands.Brand, " ", products.Product, " ", maeinvs.Detail) AS Name,
"" AS Desc, 0 AS Qnty, 0 AS Price
FROM maeinvs
INNER JOIN products
ON products.idProduct = maeinvs.idProduct
INNER JOIN brands
ON brands.idBrand = maeinvs.idBrand
UNION
SELECT idInv, 
"" AS Name,
Desc, Qnty, Price
FROM invoicedetails
WHERE idInvoice = $id
我已经在下一行写下了我所改变的
由于列彼此匹配,联合将起作用。

我仍然不知道如何在单个查询上实现它,我只知道基本知识;化名?但通过查看并连接我的invoicedetails表解决了这个问题

视图:

查询:

SELECT viewnames.Name, invoicedetails.Desc, invoicedetails.Qnty, invoicedetails.Price
FROM invoicedetails
INNER JOIN viewnames ON viewnames.idInv = invoicedetails.idInv
WHERE invoicedetails = $id

我认为如果有人回答这个问题,您可能需要为所有涉及的表提供创建表脚本。从您目前看到的数据来看,它看起来像是多个表之间的直接连接。您确定您已经尝试过联接查询,但它们不起作用吗?如果您尝试启动查询,检查查询结果,并报告哪些对您有效,哪些对您无效,可能会更好。它会提供所有库存,我需要一个联合,然后是一个联合,以仅获取发票详细信息。无论如何,谢谢你的回答,这有助于我找到解决方案。
SELECT viewnames.Name, invoicedetails.Desc, invoicedetails.Qnty, invoicedetails.Price
FROM invoicedetails
INNER JOIN viewnames ON viewnames.idInv = invoicedetails.idInv
WHERE invoicedetails = $id