我有一個包含多個表的MySQL數據庫,我必須創建一個非常複雜的查詢以從這些表中獲取所需的數據,並且我遇到了問題說明查詢。用於鏈接不同表格的兩行的MySQL語法,它們都有一個公共字段
的表被設計成這樣(列名已被重命名,這些arn't實際列),
表1 ID,名稱,等級,國家
表2 的itemid,textbool1, textbool2
查詢需要: -
- 檢查table2.textbool1和table2.textbool2域匹配輸入的字符串(從外部提供,通過字符串連接)
- (銘記ID =的itemid)
- 檢查名稱包含所輸入的字符串
- 檢查等級高於某一值
- 檢查國家相匹配輸入的字符串
- 回報最大的20個表2行,由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
但這不起作用。有人可以解釋爲什麼嗎?
任何幫助將appriciated。
編輯
此查詢的工作: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
** table1.rating> ='10'**是字符串還是int? – user1844933
使用正確的JOIN語法'table2 INNER JOIN table1 ON table2.itemid = table1.id ...' – Mihai
table1.rating是一個mediumint – Ryan