Я не делаю этого с этим вопросом, и после нескольких попыток я не могу запустить. Просьба указать, что с этим связано, как я могу это исправить. Благодарю.
SELECT
cd.dr
FROM
(
(SELECT SUM(cc.credit_amount) AS cr FROM cust_credit cc) cc
UNION
(SELECT SUM(cd.debit_amount) AS dr FROM cust_debit cd ) cd
)
Ошибка.
# 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с "cd". LIMIT 0, 25 'в строке 7
Вы не можете давать псевдонимы подзапросам в UNION
, и вы не можете ссылаться на результаты подзапросов с использованием псевдонима. И псевдонимы столбцов в UNION
всегда исходят из псевдонимов в первом подзапросе, поэтому вы не можете ссылаться на dr
.
Что вы можете сделать, так это:
SELECT amount
FROM (
SELECT 'cc' AS type, SUM(credit_amount) as amount FROM cust_credit
UNION ALL
SELECT 'cd' AS type, SUM(debit_amount) AS amount FROM cust_debit
) x
WHERE type = 'cd'
Или вместо использования UNION
вы можете поместить запросы в список SELECT
.
SELECT dr AS amount
FROM (
SELECT (SELECT SUM(credit_amount) FROM cust_credit) AS cr,
(SELECT SUM(debit_amount) FROM cust_debit) AS dr
) x
#1248 - Every derived table must have its own alias
.
AS somealias
после последней круглой скобки в каждом примере.
LIMIT 0, 25
ко всем запросам, чтобы реализовать разбиение на страницы в средстве просмотра результатов.UNION
используя псевдонимы.