[英]Inner join on two tables
As im trying to do an inner join, im getting stuck by an error : #1066 - Not unique table/alias: 'afspraken' 当我尝试进行内部联接时,我被错误卡住了:#1066-不是唯一的表/别名:'afspraken'
Here is what i am trying: 这是我正在尝试的:
SELECT accounts.werknemer_id, accounts.voornaam, accounts.achternaam, klanten.klant_id, klanten.voornaam, klanten.achternaam
FROM accounts, klanten
JOIN afspraken ON afspraken.werknemer_id = afspraken.werknemer_id JOIN afspraken ON afspraken.klant_id = afspraken.klant_id
i am wondering what is going wrong, i have been on google, but neither their i could find a solution. 我想知道怎么回事,我一直在谷歌上,但他们都找不到解决方案。
Thanks in forehand 正手感谢
When you use an inner join of two tables, the condition of inner join must be an identical field existing in both. 当您使用两个表的内部联接时,内部联接的条件必须是两个表中都存在的相同字段。 Also, the fields selected must be in one table or another, you cannot just place a condition to inner join based on the same field of the same table.
另外,选定的字段必须在一个或另一个表中,您不能仅基于同一表的同一字段为内部联接放置条件。 the equal
afspraken.werknemer_id = afspraken.werknemer_id
and the equal afspraken.klant_id = afspraken.klant_id
are causing the error. 相等的
afspraken.werknemer_id = afspraken.werknemer_id
和相等的afspraken.klant_id = afspraken.klant_id
引起了错误。
I believe you want to join both tables accounts
and klanten
with no common field through the table afspraken
with werknemer_id
and klant_id
fields, so it would be like this: 我相信您想通过带有
werknemer_id
和klant_id
字段的表afspraken
将两个表accounts
和klanten
合并为一个没有公共字段的字段,因此将如下所示:
SELECT accounts.werknemer_id,
accounts.voornaam,
accounts.achternaam,
klanten.klant_id,
klanten.voornaam,
klanten.achternaam
FROM accounts
INNER JOIN afspraken ON accounts.werknemer_id = afspraken.werknemer_id
INNER JOIN klanten ON afspraken.klant_id = klanten.klant_id
There are several parts of this query that are worrysome: 此查询有几个令人担忧的部分:
. 。
SELECT accounts.werknemer_id, accounts.voornaam, accounts.achternaam, klanten.klant_id, klanten.voornaam, klanten.achternaam
FROM accounts, klanten <-- This line is the problem
JOIN afspraken ON afspraken.werknemer_id = afspraken.werknemer_id <--or these two are (1)
JOIN afspraken ON afspraken.klant_id = afspraken.klant_id <--(2)
to solve we would need to know how accounts relate to klanten and why you need two joins to afspraken when you could use an and clause on the join syntax such as... 为了解决这个问题,我们需要知道科目与klanten的关系,以及为什么可以在联接语法上使用and子句时需要两次联接到afspraken,例如...
INNER JOIN afspraken
ON afspraken.werknemer_id = afspraken.werknemer_id <--or these two are (1)
AND afspraken.klant_id = afspraken.klant_id <--(2)
Furthermore, you don't alias afspraken. 此外,您无需别名afspraken。 which also would cause problems as the system wouldn't know what join to link to.
这也会引起问题,因为系统不知道要链接到的联接。
So either... 所以...
SELECT A.werknemer_id, A.voornaam, A.achternaam, K.klant_id, K.voornaam, K.achternaam
FROM accounts A, klanten K, afspraken AF, afspraken AF2
WHERE AF.werknemer_id = AF2.werknemer_id
AND AF.klant_id = AF2.klant_id
Though again how do accounts relate to klaten OR 尽管帐户又如何与klaten或相关
SELECT A.werknemer_id, A.voornaam, A.achternaam, K.klant_id, K.voornaam, K.achternaam
FROM accounts A
CROSS JOIN klanten K
CROSS JOIN afspraken AF,
INNER JOIN afspraken AF2
ON AF.werknemer_id = AF2.werknemer_id
AND AF.klant_id = AF2.klant_id
but I likely have the relationships messed up as I don't understand how each table relates to each other table in your example. 但由于我不了解您的示例中每个表之间的关系,因此我可能弄错了这些关系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.