MySQL语法,用于链接不同表中的两行,它们都有一个公共字段

MySQL语法,用于链接不同表中的两行,它们都有一个公共字段,mysql,sql,inner-join,Mysql,Sql,Inner Join,我有一个包含多个表的MySQL数据库,我必须创建一个非常复杂的查询来从这些表中获取所需的数据,而我在处理上述查询时遇到了问题 表的设计是这样的(列名已重命名,这些列不是实际的列) 表1 身份证、姓名、等级、国家 表2 itemid,textbool1,textbool2 查询需要:- 检查table2.textbool1和table2.textbool2字段是否与输入的字符串匹配(通过字符串连接在外部提供) (记住id=itemid) 检查名称是否包含输入的字符串 检查额定值是否高于特定值 检

我有一个包含多个表的MySQL数据库,我必须创建一个非常复杂的查询来从这些表中获取所需的数据,而我在处理上述查询时遇到了问题

表的设计是这样的(列名已重命名,这些列不是实际的列)

表1 身份证、姓名、等级、国家

表2 itemid,textbool1,textbool2

查询需要:-

  • 检查table2.textbool1和table2.textbool2字段是否与输入的字符串匹配(通过字符串连接在外部提供)
  • (记住id=itemid)
  • 检查名称是否包含输入的字符串
  • 检查额定值是否高于特定值
  • 检查国家/地区是否与输入的字符串匹配
  • 返回最多20行table2的内容,按table1.rating排序(降序)
到目前为止,我有:-

SELECT table2.* from table2 INNER JOIN table1 
WHERE table2.textbool1 = 'true' && table2.textbool2 = 'false' 
&& table1.name LIKE 'test' && table1.rating >= '10' && table1.country = 'gb' 
ORDER BY table1.rating DESC LIMIT 20
但这不起作用。有人能解释为什么吗

任何帮助都将受到感谢

编辑

此查询起作用:
从(table2.item_id=table1.id)上的table2内部联接table2.*其中table1.country='de'&&premiumserver.Rating>=9 ORDER BY table1.Rating DESC LIMIT 20


但这并不是:
从(table2.item_id=table1.id)上的table2内部联接tabel1中选择table2.*其中table1.名称如“test”和&table1.country='de'按表1排序。评级描述限制20
您缺少
内部联接中的
语句

试试这个

SELECT table2.* from 
table2 INNER JOIN table1
ON( table2.itemid = table1.id )
WHERE table2.textbool1 = 'true' && table2.textbool2 = 'false' 
&& table1.name LIKE '%test%' && table1.rating >= '10' && table1.country = 'gb' 
ORDER BY table1.rating DESC LIMIT 20

table1.rating>='10'是字符串还是int?使用正确的联接语法
table2表2上的内部联接table1.itemid=table1.id..
table1.rating是一种中介,不起作用的意思。。。查询是显示错误还是没有得到预期的结果?没有得到预期的结果,我没有从MySQL中得到任何错误。好的,这就是现在的查询<代码>选择table2.*从(table2.item_id=table1.id)上的table2内部联接tabel1,其中table1.Name如'test'和&table1.country='de'按table1排序。Rating DESC LIMIT 20
但仍不起作用。好的,此查询有效<代码>选择表2.*从表2内部连接表2(表2.item_id=table1.id),其中表1.country='de'ORDER BY table1.Rating DESC LIMIT 20
但当它包括“LIKE”部分时,它不起作用。更新了答案。。基本上,当您想在字符串中搜索时,需要使用
%
字符。。