Mysql 如何使用多个主键连接三个表
我有三张桌子如下 表a(id、名称)作为主键 表b(id、名称、国家)作为主键,c_id作为外键 表c(id)作为主键,另一列是type 我想从这些表中选择id、name、type,其中country='CA' 我的数据库是MySQL,我编写的SQL如下:Mysql 如何使用多个主键连接三个表,mysql,sql,Mysql,Sql,我有三张桌子如下 表a(id、名称)作为主键 表b(id、名称、国家)作为主键,c_id作为外键 表c(id)作为主键,另一列是type 我想从这些表中选择id、name、type,其中country='CA' 我的数据库是MySQL,我编写的SQL如下: select n.activity_date,n.advertiser_id,c.type as type from a JOIN b as n on (a.id=b.id,a.name=b.name) JOIN c
select n.activity_date,n.advertiser_id,c.type as type
from a JOIN b as n
on (a.id=b.id,a.name=b.name)
JOIN c
on n.c_id=c.id
where b.country='CA'
limit 10;
错误是
ERROR 1064 (42000): 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 n
on (a.activity_date=d.activity_date,a.advertiser_id=d.advertiser_id)
JOIN t' at line 2
对于多个条件联接,必须使用AND,而不是逗号
select n.activity_date,n.advertiser_id,c.type as type
from a
JOIN b as n on a.id=n.id AND a.name=n.name
JOIN c on n.c_id=c.id
where n.country='CA'
limit 10;
对于多个条件联接,必须使用AND,而不是逗号
select n.activity_date,n.advertiser_id,c.type as type
from a
JOIN b as n on a.id=n.id AND a.name=n.name
JOIN c on n.c_id=c.id
where n.country='CA'
limit 10;
对于多个条件联接,必须使用AND,而不是逗号
select n.activity_date,n.advertiser_id,c.type as type
from a
JOIN b as n on a.id=n.id AND a.name=n.name
JOIN c on n.c_id=c.id
where n.country='CA'
limit 10;
对于多个条件联接,必须使用AND,而不是逗号
select n.activity_date,n.advertiser_id,c.type as type
from a
JOIN b as n on a.id=n.id AND a.name=n.name
JOIN c on n.c_id=c.id
where n.country='CA'
limit 10;
您在上的
不正确。不能用,
分隔子句。您必须使用布尔逻辑,这意味着和和或,例如:
from a JOIN b as n
on (a.id=b.id AND a.name=b.name)
^^^^---- no commas here
您在
上的不正确。不能用,
分隔子句。您必须使用布尔逻辑,这意味着和和或,例如:
from a JOIN b as n
on (a.id=b.id AND a.name=b.name)
^^^^---- no commas here
您在
上的不正确。不能用,
分隔子句。您必须使用布尔逻辑,这意味着和和或,例如:
from a JOIN b as n
on (a.id=b.id AND a.name=b.name)
^^^^---- no commas here
您在
上的不正确。不能用,
分隔子句。您必须使用布尔逻辑,这意味着和和或,例如:
from a JOIN b as n
on (a.id=b.id AND a.name=b.name)
^^^^---- no commas here
您的查询应该是
select n.activity_date,n.advertiser_id,c.type as type
from a JOIN b as n
-- because of the alias name you've got to reference table b as n
-- and you've omitted the AND operator
on (a.id=n.id AND a.name=n.name)
JOIN c
on n.c_id=c.id
where n.country='CA' -- you've got to use n instead of b
limit 10;
您的查询应该是
select n.activity_date,n.advertiser_id,c.type as type
from a JOIN b as n
-- because of the alias name you've got to reference table b as n
-- and you've omitted the AND operator
on (a.id=n.id AND a.name=n.name)
JOIN c
on n.c_id=c.id
where n.country='CA' -- you've got to use n instead of b
limit 10;
您的查询应该是
select n.activity_date,n.advertiser_id,c.type as type
from a JOIN b as n
-- because of the alias name you've got to reference table b as n
-- and you've omitted the AND operator
on (a.id=n.id AND a.name=n.name)
JOIN c
on n.c_id=c.id
where n.country='CA' -- you've got to use n instead of b
limit 10;
您的查询应该是
select n.activity_date,n.advertiser_id,c.type as type
from a JOIN b as n
-- because of the alias name you've got to reference table b as n
-- and you've omitted the AND operator
on (a.id=n.id AND a.name=n.name)
JOIN c
on n.c_id=c.id
where n.country='CA' -- you've got to use n instead of b
limit 10;
a.id=n.id,a.name=n.name
到a.id=n.id和a.name=n.name
您已经在表b中添加了一个别名,因此您可以删除别名或更改上的字段的别名clause@1nflktd不起作用。错误是错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'as n on(a.id=b.id和a.name=b.name)的正确语法。
@user3795071将b
更改为n
@1nflktd仍然存在相同的错误。a.id=n.id,a、 name=n.name
到a.id=n.id和a.name=n.name
您在表b中添加了一个别名,因此您可以删除别名或更改上的字段的别名clause@1nflktd不起作用。错误是错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'as n on(a.id=b.id和a.name=b.name)的正确语法。
@user3795071将b
更改为n
@1nflktd仍然存在相同的错误。a.id=n.id,a、 name=n.name
到a.id=n.id和a.name=n.name
您在表b中添加了一个别名,因此您可以删除别名或更改上的字段的别名clause@1nflktd不起作用。错误是错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'as n on(a.id=b.id和a.name=b.name)的正确语法。
@user3795071将b
更改为n
@1nflktd仍然存在相同的错误。a.id=n.id,a、 name=n.name
到a.id=n.id和a.name=n.name
您在表b中添加了一个别名,因此您可以删除别名或更改上的字段的别名clause@1nflktd不起作用。错误是错误1064(42000):您的SQL语法有错误;查看与MySQL服务器版本对应的手册,了解使用near'as n on(a.id=b.id和a.name=b.name)的正确语法。
@user3795071将b
更改为n
@1nflktd仍然存在相同的错误。不要忘记别名n。不起作用。错误是错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near'as n on(a.id=b.id和a.name=b.name)
JO'的正确语法,在第2Don行不要忘记别名n。不起作用。错误是错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near'as n on(a.id=b.id和a.name=b.name)
JO'的正确语法,在第2Don行不要忘记别名n。不起作用。错误是错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near'as n on(a.id=b.id和a.name=b.name)
JO'的正确语法,在第2Don行不要忘记别名n。不起作用。错误是错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'as n on(a.id=b.id和a.name=b.name)的正确语法第2行的
JO'不起作用。错误是错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'as n on(a.id=b.id和a.name=b.name)的正确语法。
不起作用。错误是错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'as n on(a.id=b.id和a.name=b.name)的正确语法。
不起作用。错误是错误1064(42000):您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解使用near'as n on(a.id=b.id和a.name=b.name)的正确语法。
不起作用。错误是错误1064(42000):您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,了解使用near'as n on(a.id=b.id和a.name=b.name)的正确语法。