MySql - Создать представление для чтения из нескольких таблиц

Я заархивировал некоторые старые позиции для счетов-фактур, которые больше не актуальны, но по-прежнему необходимо ссылаться на них. Я думаю, что мне нужно создать ВИД, но на самом деле не понимаю его. Может ли кто-нибудь помочь, чтобы я мог выполнить запрос, чтобы получить счет-фактуру, а затем сумму всех назначенных позиций (независимо от того, в какой таблице находятся позиции)?

CREATE TABLE `Invoice` (
  `Invoice_ID` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `Invoice_CreatedDateTime` DATETIME DEFAULT NULL,
  `Invoice_Status` ENUM('Paid','Sent','Unsent','Hold') DEFAULT NULL,
  `LastUpdatedAt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`ID`),
  KEY `LastUpdatedAt` (`LastUpdatedAt`)
) ENGINE=MYISAM DEFAULT CHARSET=latin1

CREATE TABLE `Invoice_LineItem` (
  `LineItem_ID` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `LineItem_ChargeType` VARCHAR(64) NOT NULL DEFAULT '',
  `LineItem_InvoiceID` INT(11) UNSIGNED DEFAULT NULL,
  `LineItem_Amount` DECIMAL(11,4) DEFAULT NULL,
  `LastUpdatedAt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`LineItem_ID`),
  KEY `LastUpdatedAt` (`LastUpdatedAt`),
  KEY `LineItem_InvoiceID` (`LineItem_InvoiceID`)
) ENGINE=MYISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1

CREATE TABLE `Invoice_LineItem_Archived` (
  `LineItem_ID` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `LineItem_ChargeType` VARCHAR(64) NOT NULL DEFAULT '',
  `LineItem_InvoiceID` INT(11) UNSIGNED DEFAULT NULL,
  `LineItem_Amount` DECIMAL(11,4) DEFAULT NULL,
  `LastUpdatedAt` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`LineItem_ID`),
  KEY `LastUpdatedAt` (`LastUpdatedAt`),
  KEY `LineItem_InvoiceID` (`LineItem_InvoiceID`)
) ENGINE=MYISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1

Обычно я просто запускаю следующий запрос, чтобы получить сумму, причитающуюся по счетам

SELECT
    Invoice_ID,
    Invoice_CreatedDateTime,
    Invoice_Status,
    (SELECT SUM(LineItem_Amount) AS totAmt FROM Invoice_LineItem WHERE LineItem_InvoiceID=Invoice_ID) AS Invoice_Total
FROM
    Invoice
WHERE
    Invoice_Status='Sent'

Кроме того, как я могу выбрать все позиции из обеих таблиц в одном запросе?

SELECT
    LineItem_ID,
    LineItem_ChargeType,
    LineItem_Amount
FROM
    Invoice_LineItem
WHERE
    LineItem_InvoiceID='1234'

Ответы на вопрос(2)

Ваш ответ на вопрос