我有这个疑问: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