我有這個疑問:sql查詢不拉記錄相同
SELECT Book.title, Book.copyright, Book.publisher, Book.id,
MaterialType.type, Item.id as item_id, 100 as relevance FROM `books` AS `Book`
inner JOIN `material_types` AS `MaterialType` ON (`MaterialType`.`id` = `Book`.`material_type_id`)
inner JOIN `items` AS `Item` ON (`Item`.`book_id` = `Book`.`id` AND `Item`.`accession_number` = '0936')
WHERE 1 = 1 GROUP BY `Book`.`id`
其拉什麼。但是,如果我做這個查詢它找到正確的記錄:
SELECT * FROM `items` AS `Item` WHERE `Item`.`accession_number` = '0936'
儘管最奇怪的部分,其他記錄它將工作。如果我使用accession_number 0396,如果在兩個查詢中找到正確的記錄。我不能爲了我的生活而弄清楚發生了什麼。任何幫助是極大的讚賞。
什麼是where和group by子句的用途?沒有集合函數分組是毫無意義的,並且總是評估爲真的where子句是沒有意義的。但是,由於簡化選擇確實找到了某些內容,請確保檢索到的項目記錄具有匹配的book.id.沒有這個,你的內聯會阻止任何東西出現。如果沒有指定where條件,程序將自動生成一個默認值 –
。再加上,這實際上是從查詢中提取的,但這是相關的部分。 – LordZardeck