sql - UNION ALL 和 inner join 在另一边

sql - UNION ALL and inner join in the other side

我想要查询想要实现的位置 我的内部连接具有相同的价值 应该是他们唯一的价值作为第一个价值 专栏,图片在这里:

而我只想输出就是图中的红线

这是我的查询:

  SELECT it.Date AS 'Date', it.invoice AS 'Invoice No.', 
         it.company AS 'Company', it.total_amount AS 'Total Amount'
  FROM invoicesummary_tbl it
  WHERE it.total !=0 
  UNION ALL
  SELECT itt.Date AS 'Date',rt.revises_no AS 'Invoice_No.', itt.company AS 
  'Company', 
       itt.total_amount AS 'Total Amount'   
  FROM revises_tbl rt
  INNER JOIN invoicesummary_tbl itt
  ON itt.invoice=rt.invoice

使用DISTINCT关键字:

SELECT DISTINCT *
  FROM (SELECT it.Date AS 'Date',
               it.invoice AS 'Invoice No.',
               it.company AS 'Company',
               it.total_amount AS 'TotalAmount'
          FROM invoicesummary_tbl it
         WHERE it.total != 0
        UNION ALL
        SELECT itt.Date AS 'Date',
               rt.revises_no AS 'Invoice_No.',
               itt.company AS 'Company',
               itt.total_amount AS 'Total Amount'
          FROM revises_tbl rt
               INNER JOIN invoicesummary_tbl itt ON itt.invoice = rt.invoice
) AS a

我猜你的第二个查询会重复数据。你可以试试

 SELECT it.Date AS 'Date', it.invoice AS 'Invoice No.', 
         it.company AS 'Company', it.total_amount AS 'Total Amount'
  FROM invoicesummary_tbl it
  WHERE it.total !=0 
  UNION ALL
  SELECT DISTINCT itt.Date AS 'Date',rt.revises_no AS 'Invoice_No.', itt.company AS 
  'Company', itt.total_amount AS 'Total Amount'   
  FROM revises_tbl rt
  INNER JOIN invoicesummary_tbl itt
  ON itt.invoice = rt.invoice