我目前正在教导自己使用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。你必须用LEFT JOIN和RIGHT JOIN进行模拟。 – 2014-10-20 07:43:35
JOIN类型并不真正困扰着我。这就是没有任何表格(A和B)会加入我似乎做的任何事情。 – ViRALiC 2014-10-20 07:47:33
试试这个(MySQL的没有完全连接) http://stackoverflow.com/questions/4796872/full-outer-join-in-mysql – 2014-10-20 07:48:31