我有一個返回與匹配特定類別的項目結果的查詢......MySQL查詢 - 加入造成混亂,我在此查詢
有3個MySQL表導致此,items
,categories
和item_categories
。
這些我假設是不言自明的,但後者是一個鏈接表,它使用id的匹配將任何特定項目鏈接到任何特定類別。
的項目表中包含一個行,具有1
的id
值類別表被填充有15行,具有1-15 id
值。
的item_categories表包含行,則item_id
值是1,並且category_id
值爲5
這是MySQL查詢在其PHP的形式:
$catResultQuery = "
SELECT i.id, name, price
FROM items i
INNER JOIN item_categories
ON i.id = item_id
INNER JOIN categories c
ON category_id = c.id
WHERE MATCH (c.id)
AGAINST ('{$_SESSION['input']}' IN BOOLEAN MODE)
ORDER BY name
";
會話變量具有值爲5,但由於某種原因,此查詢顯示0結果集。
即使當我在php myadmin中運行查詢,它返回0行。
而我很困惑,因爲在我的腦海裏,所有這些背後的邏輯看起來相當簡單,但由於某種原因,我得到了0?有沒有人有任何想法,我錯了這個?
任何意見和輸入將不勝感激,謝謝!
它看起來正確,直到WHERE子句。如果您只是運行該頂部部分,即沒有WHERE子句,數據是否會返回? – TetonSig 2011-12-25 20:40:51
@TetonSig是的,它確實產生了數據,其餘的被刪除... – 2011-12-25 20:42:35
MATCH AGAINST語法似乎是用於模式匹配,這可能會巧妙地混淆事物並增加不必要的複雜性。你可以只使用WHERE c.id = {$ _SESSION ['input']}或者你想匹配多個值,這只是一個簡單的例子,只有一個? – TetonSig 2011-12-25 20:48:09