sql - 关键字 'right' 附近的语法不正确

标签 sql join where-clause

我对 SQL 很陌生,花了几个小时搜索,但所有文章都指向或多或少相同

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;  

贝娄是我的代码,但老实说我不确定我在这里做错了什么。

  "SELECT * FROM user_private_store WHERE store_type=@STORE_TYPE " +
     "RIGHT JOIN user_private_store_items " +
     "ON user_private_store.id = user_private_store_items.id";

我想通过 ID 连接两个表,保留左侧的 id 并从右侧表 user_private_store_items 获取其他参数

我在关键字“right”附近发现语法错误

最佳答案

只需输入 where连接后的子句:

"SELECT * FROM user_private_store s " +
"RIGHT JOIN user_private_store_items i " +
"ON s.id = i.id " +
"WHERE store_type=@STORE_TYPE"

注释:

  • 表别名使查询更易于阅读和理解。我修改了您的查询以使用它们

  • 您需要添加前缀 store_typewhere子句与其所属的表一起使用,以避免歧义

  • avoir select * ;最好枚举您要选择的所有列

关于sql - 关键字 'right' 附近的语法不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58737874/

相关文章:

MySQL 从由第 3 个连接的 2 个表中选择(mysql 连接)

mysql - 如何将字符添加到字符串中的特定索引

c# - 如果找不到项目,LINQ 表达式可以使用 LEFT JOIN 或默认为 null 吗?

mysql - 基于多个表/主键和外键获得最有效的查询

sql - mySql join - 来自同一张表的多条记录

sql-server - 如何将主表连接到多个详细信息表,其中详细信息单元格的额外行填充为 NULL

android - Android 上的 GreenDAO : Byte Array as Primary Key/Building Query Containing Where Clause on Byte Array Property

t-sql - 创建 T-SQL where 子句以接受 NULL 值

SQL Case 列为空重新定义选择器

php - 仅当在 PHP 中单击按钮时才显示密码