Я в настоящее время участвую в использовании MySQL. Проблема в том, что самообучение не всегда легко, и я часто застреваю. Обычно я пытаюсь расправляться, но сегодня такого дня нет.Ошибка синтаксиса MySQL при присоединении
Я использую SQLFiddle (http://sqlfiddle.com/) для запуска своих запросов в отношении базы данных, пока не найду еще какое-то постоянное программное решение.
Моя проблема в моем запросе.
(SELECT customer.customername, the_account.balance, branch.branch_name
FROM customer, has_account, the_account, branch
WHERE customer.ssn = has_account.assn
AND has_account.ano = the_account.accountno
AND the_account.branchid = branch.branchid) AS a
JOIN
(SELECT customer.customername, loan.amount, branch.branch_name
FROM customer, has_loan, loan, branch
WHERE customer.ssn = has_loan.lssn
AND has_loan.lno = loan.loanno
AND loan.branchid = branch.branchid) AS b
ON has_account.assn = has_loan.lssn;
Теперь, я уверен, что синтаксис ошибка крайне очевидна для кого-то, кто знает SQL наизусть, но я просто застрял в колее, и не могу выкопать себя из.
Мое понимание заключалось в том, что я мог хотя бы попытаться объединить все две таблицы вместе.
Полный обзор моей базы данных, запрос и т. Д., Перейдите по ссылке http://sqlfiddle.com/#!2/1943b/85.
И, пожалуйста, будьте нежны. Я знаю, что это, вероятно, ошибка новобранец, но изучение этого материала по своему усмотрению не так просто, как вы думаете.
Update1:
Так после попытки предложенная:
(SELECT has_account.assn as assn, customer.customername, the_account.balance, branch.branch_name
FROM customer, has_account, the_account, branch
WHERE customer.ssn = has_account.assn
AND has_account.ano = the_account.accountno
AND the_account.branchid = branch.branchid) AS a
JOIN
(SELECT has_loan.lssn as lssn, customer.customername, loan.amount, branch.branch_name
FROM customer, has_loan, loan, branch
WHERE customer.ssn = has_loan.lssn
AND has_loan.lno = loan.loanno
AND loan.branchid = branch.branchid) AS b
ON b.lssn = a.assn;
который выглядел хорошо, и сделал все чувства в мире для меня, SQLFiddle жалуется:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS a JOIN (SELECT has_loan.lssn as lssn, customer.customername, loan.amount, bra' at line 5: (SELECT has_account.assn as assn, customer.customername, the_account.balance, branch.branch_name FROM customer, has_account, the_account, branch WHERE customer.ssn = has_account.assn AND has_account.ano = the_account.accountno AND the_account.branchid = branch.branchid) AS a JOIN (SELECT has_loan.lssn as lssn, customer.customername, loan.amount, branch.branch_name FROM customer, has_loan, loan, branch WHERE customer.ssn = has_loan.lssn AND has_loan.lno = loan.loanno AND loan.branchid = branch.branchid) AS b ON b.lssn = a.assn
(На всякий случай кто-то хотел получить сообщение об ошибке целиком!)
MySQL не поддерживает FULL OUTER JOIN. Вы должны подражать ему с ЛЕВЫМ ПРИСОЕДИНЕНИЕМ, объединенным с ПРАВОЙ ПРИСОЕДИНЕНИЕ. –
Тип JOIN на самом деле не то, что меня беспокоит. Это то, что ни одна из таблиц (A и B) не присоединится ко всему, что я, кажется, делаю. – ViRALiC
Попробуйте это (MySQL не имеют полных объединений) http://stackoverflow.com/questions/4796872/full-outer-join-in-mysql –