SELECT
CONCAT_WS(' ',child_fname,child_sname) AS 'Child Name'
, child_gender AS 'Gender'
, child_dob AS 'DoB'
, COUNT activity_name AS 'Activities name'
, CONCAT_WS(' ', parent_title, parent_fname, parent_sname) AS 'Parent Name'
, parent_phone AS 'Parent phone'
, CONCAT_WS(' ', parent_address1, parent_address2, parent_town,
parent_county parent_pcode) AS 'Parent Address',
FROM
Child,
JOIN ChildActivity USING(child_id),
JOIN Activities USING(activity_id),
JOIN Parent USING(parent_id),
WHERE
activity_name='Art';
Run Code Online (Sandbox Code Playgroud)
查询浏览器说我有 error near 'AS Activities name... CONCAT_WS('',...at line 4.
如何解决此错误?
ype*_*eᵀᴹ 11
您的查询中有几个问题。
首先,没有CONCAT_WS()功能。我假设您想连接字符串。+如果您使用的是 SQL-Server,请改用运算符:
child_fname + ' ' + child_sname AS "Child Name",
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是 MySQL,则||操作符或CONCAT()函数:
child_fname || ' ' || child_sname AS "Child Name",
Run Code Online (Sandbox Code Playgroud)
或(更正,更新),只需保留该CONCAT_WS()功能,它适合您的情况,如果您使用的是 MySQL。
其次,在错误的地方(在FROMand 和JOIN关键字之前)有几个逗号。
"Child Name"或方括号(如:)引用,或者[Child Name]如果它们没有特殊字符并且没有保留(如:),则根本不引用Gender。不要对列或表别名使用单引号。单引号用于字符串文字,例如'Art'. MySQL 也可能允许您在别名中使用它们,但不要陷入这种坏习惯。COUNT()是一个(聚合)函数,它需要括号。但既然你没有GROUP BY,那么使用COUNT().USING连接的语法,所以使用ON代替(它适用于所有 DBMS)。因此,查询变为:
SELECT
CONCAT_WS(' ', child_fname, child_sname) AS "Child Name",
child_gender AS Gender,
child_dob AS DoB,
activity_name AS "Activities name",
CONCAT_WS(' ', parent_title, parent_fname, parent_sname) AS "Parent Name",
parent_phone AS "Parent phone",
CONCAT_WS(' ', parent_address1, parent_address2, parent_town, parent_county, parent_pcode)
AS "Parent Address" --<-- Comma removed here.
--- for MySQL
FROM Child --<-- Also here
JOIN ChildActivity USING(child_id) --<-- and here
JOIN Activities USING(activity_id) --<-- and here
JOIN Parent USING(parent_id) --<-- and here.
--- for SQL-Server or MySQL
--- FROM Child
--- JOIN ChildActivity ON ChildActivity.child_id = Child.child_id
--- JOIN Activities ON Activities.activity_id = ChildActivity.activity_id
--- JOIN Parent ON Parent.parent_id = Child.parent_id
WHERE activity_name = 'Art' ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
860 次 |
| 最近记录: |