我在这个SQL查询中遇到了问题
SELECT * FROM `book` join `journal`
WHERE `book-category` LIKE '$maincat2'
AND `book-category` LIKE '$subcat2'
AND `book-category` LIKE '$country2'
AND `book-category` LIKE '$procat2'
表格结构是同一本书=期刊
是什么原因?
答案 0 :(得分:1)
book
和journal
都有book-category
列,因此MySQL不知道应用条件的是哪一个。您可以通过使用表名完全引用它们来解决此问题。
E.g:
SELECT * FROM `book` join `journal`
WHERE `book`.`book-category` LIKE '$maincat2'
AND `book`.`book-category` LIKE '$subcat2'
AND `book`.`book-category` LIKE '$country2'
AND `book`.`book-category` LIKE '$procat2'
答案 1 :(得分:1)
也许是我,但你的查询对我来说没有多大意义。
可能你想要这样的东西(使用UNION
而不是JOIN
),如果你说的话,book
和journal
的表模式实际上是相同的/ p>
SELECT 'book' type, b.*
FROM book b
WHERE book-category LIKE '$maincat2'
AND book-category LIKE '$subcat2'
AND book-category LIKE '$country2'
AND book-category LIKE '$procat2'
UNION ALL
SELECT 'journal', j.*
FROM journal j
WHERE book-category LIKE '$maincat2'
AND book-category LIKE '$subcat2'
AND book-category LIKE '$country2'
AND book-category LIKE '$procat2'