phpmyadmin 试图只获取具有某些首字母的单元格,但却出现语法错误?SQL

oiopk7p5  于 2022-11-09  发布在  PHP
关注(0)|答案(5)|浏览(125)

因此,我的作业问题是“获取首字母为”B.W.“的人撤回的所有书籍的列表。显示名、姓、首字母和书名的列”。我试图连接这三个表,因为这是获得此信息的唯一方法,但我很难只显示首字母为“B.W.”的姓名。我得到一个语法错误,说:
“您的SQL语法中有错误;请查看与MySQL服务器版本对应的手册,以了解在“JOIN withdrawals”附近使用的正确语法
当我删除'WHERE'语句(第二行的所有语句)时,语法错误就消失了。如何使其正常工作?
下面是我的代码:

SELECT first_name, last_name, title FROM members 
     WHERE first_name LIKE 'B%' AND last_name LIKE 'W%'
      JOIN withdrawals  
        ON members.member_id  = withdrawals.member_id 
         JOIN books 
             ON withdrawals.book_id = books.book_id
oxalkeyp

oxalkeyp1#

JOIN应该始终放在FROM table-name之后。

  • SELECT名字,姓氏,头衔FROM成员JOIN取款

ON成员.成员标识=提款.成员标识JOIN帐簿ON withdrawals.book_id = books.book_id WHERE名字类似于'B%' AND姓氏类似于'W %'*

ih99xse1

ih99xse12#

在编写SQL语句时,必须遵循一个流程

SELECT * FROM table
JOIN table2 ON 
WHERE
GROUP BY
ny6fqffe

ny6fqffe3#

首先,您需要创建一个名为“姓名缩写”的列。在这种情况下,您可以使用SUBSTR来获取您的first_name的第一个字母和last_name的第一个字母。然后,您需要将它们连接在一起,使其成为一个列。

CONCAT(SUBSTR(first_name,1,1), '.', SUBSTR(last_name,1,1), '.') AS Initials

然后,你需要找出谁的首字母是B.W.。你可以使用LIKE('B.W. ')。因为你有一个具体的答案,所以你不需要使用%。

HAVING Initials LIKE ('B.W.')
tgabmvqs

tgabmvqs4#

试着按顺序执行所有操作,例如:

SELECT - FROM - JOIN & ON - WHERE - GROUP BY - HAVING - ORDER BY
igetnqfo

igetnqfo5#

您可以尝试以下操作:

SELECT CONCAT(SUBSTR(m.first_name,1,1) , '.', SUBSTR(m.last_name,1,1) ) AS "Initials"
FROM - JOIN - ON
WHERE m.first_name LIKE "B%" AND m.last_name LIKE "W%" ;

相关问题