简体   繁体   中英

How to combine 3 SQL queries in to 1?

I have products stored over 3 tables and product prices stored over 3 tables. At the moment I run each SQL query and then manually merge the data together in Microsoft Excel but is it possible to merge these queries so that I can get all results in one hit?

I was thinking about just using 3 sub queries but I'm not sure whether that is the correct way to do it or not.

1. Query

SELECT
  kust_adr.KU_NAME AS "Customer Name",
  lzr_daten.LZR_BEZ AS "Product Name",
  lzr_przu.LZR_PR AS "Price"
FROM kust_adr,
     lzr_daten,
     lzr_przu
WHERE lzr_przu.LZR_KUNR = kust_adr.KU_NR
AND lzr_daten.LZR_IDNR =
lzr_przu.LZR_IDNR
AND (lzr_daten.LZR_IDNR IN (85)
AND kust_adr.KU_ADR_ART = 0)

2. Query

SELECT
  kust_adr.KU_NAME AS "Customer Name",
  glas_daten_basis.GL_BEZ AS
  "Product Name",
  os_przu.ZUM2 AS "Price"
FROM glas_daten_basis,
     kust_adr,
     os_przu
WHERE os_przu.KUNR = kust_adr.KU_NR
AND glas_daten_basis.IDNR = os_przu.IDNR
AND (glas_daten_basis.IDNR IN (4, 104, 9, 109, 309, 311)
AND kust_adr.KU_ADR_ART =
0)

3. Query

SELECT
  kust_adr.KU_NAME AS "Customer Name",
  gas_daten.GAS_BEZ AS "Product Name",
  gas_przu.GAS_MIN_M2 AS "Price"
FROM kust_adr,
     gas_daten,
     gas_przu
WHERE gas_przu.GAS_KUNR = kust_adr.KU_NR
AND gas_daten.GAS_IDNR =
gas_przu.GAS_IDNR
AND (kust_adr.KU_ADR_ART = 0)

UNION removes duplicate rows:

SELECT kust_adr.KU_NAME AS "Customer Name",
       lzr_daten.LZR_BEZ AS "Product Name",
       lzr_przu.LZR_PR AS "Price"
  FROM kust_adr, lzr_daten, lzr_przu
 WHERE     lzr_przu.LZR_KUNR = kust_adr.KU_NR
       AND lzr_daten.LZR_IDNR = lzr_przu.LZR_IDNR
       AND (lzr_daten.LZR_IDNR IN (85) AND kust_adr.KU_ADR_ART = 0)
UNION
SELECT kust_adr.KU_NAME AS "Customer Name",
       glas_daten_basis.GL_BEZ AS "Product Name",
       os_przu.ZUM2 AS "Price"
  FROM glas_daten_basis, kust_adr, os_przu
 WHERE os_przu.KUNR = kust_adr.KU_NR AND glas_daten_basis.IDNR = os_przu.IDNR
       AND (glas_daten_basis.IDNR IN (4, 104, 9, 109, 309, 311)
            AND kust_adr.KU_ADR_ART = 0)
UNION
SELECT kust_adr.KU_NAME AS "Customer Name",
       gas_daten.GAS_BEZ AS "Product Name",
       gas_przu.GAS_MIN_M2 AS "Price"
  FROM kust_adr, gas_daten, gas_przu
 WHERE     gas_przu.GAS_KUNR = kust_adr.KU_NR
       AND gas_daten.GAS_IDNR = gas_przu.GAS_IDNR
       AND (kust_adr.KU_ADR_ART = 0);

UNION ALL does not remove duplicate rows:

SELECT kust_adr.KU_NAME AS "Customer Name",
       lzr_daten.LZR_BEZ AS "Product Name",
       lzr_przu.LZR_PR AS "Price"
  FROM kust_adr, lzr_daten, lzr_przu
 WHERE     lzr_przu.LZR_KUNR = kust_adr.KU_NR
       AND lzr_daten.LZR_IDNR = lzr_przu.LZR_IDNR
       AND (lzr_daten.LZR_IDNR IN (85) AND kust_adr.KU_ADR_ART = 0)
UNION ALL
SELECT kust_adr.KU_NAME AS "Customer Name",
       glas_daten_basis.GL_BEZ AS "Product Name",
       os_przu.ZUM2 AS "Price"
  FROM glas_daten_basis, kust_adr, os_przu
 WHERE os_przu.KUNR = kust_adr.KU_NR AND glas_daten_basis.IDNR = os_przu.IDNR
       AND (glas_daten_basis.IDNR IN (4, 104, 9, 109, 309, 311)
            AND kust_adr.KU_ADR_ART = 0)
UNION ALL
SELECT kust_adr.KU_NAME AS "Customer Name",
       gas_daten.GAS_BEZ AS "Product Name",
       gas_przu.GAS_MIN_M2 AS "Price"
  FROM kust_adr, gas_daten, gas_przu
 WHERE     gas_przu.GAS_KUNR = kust_adr.KU_NR
       AND gas_daten.GAS_IDNR = gas_przu.GAS_IDNR
       AND (kust_adr.KU_ADR_ART = 0);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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