我有一个包含多个表的MySQL数据库,我必须创建一个非常复杂的查询来从这些表中获取我需要的数据,并且我在解决所述查询时遇到了问题。
这些表的设计是这样的(列名已经重命名,这些不是实际的列),
表1 ID,姓名,评级,国家/地区
表2 itemid,textbool1,textbool2
查询需要: -
到目前为止,我有: -
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
但这不起作用。任何人都可以解释原因吗?
任何帮助都会得到满足。
修改
此查询有效:SELECT table2.* FROM table2 INNER JOIN table 2 ON(table2.item_id = table1.id) WHERE table1.country= 'de' && premiumservers.Rating >= 9 ORDER BY table1.Rating DESC LIMIT 20
但这不是:SELECT table2.* FROM table2 INNER JOIN tabel1 ON(table2.item_id = table1.id) WHERE table1.Name LIKE 'test' && table1.country = 'de' ORDER BY table1.Rating DESC LIMIT 20
答案 0 :(得分:1)
您遗漏了ON
INNER JOIN
声明
试试这个..
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