MySql 按书名和作者名选择书籍

标签 mysql select

我有3张 table , 1)书籍

+----+--------------+------+
| id | name         | code |
+----+--------------+------+
|20  | Lucian house | 2214 +
|21  | Lucian mom   | 2214 |
|22  | GoT          | 2214 |
+----+--------------+------+

2) 产品作者

+----+---------+-----------+
| id | book_id | author_id |
+----+---------+-----------+
|1   | 20      |    5      |
|2   | 21      |    5      |
|3   | 22      |    7      |
+----+---------+-----------+

3) 作者

+----+--------------+
| id | name         |
+----+--------------+
| 5  | Marta        |
+----+--------------+
| 7  | Lucian       |
+----+--------------+

我想选择名称中包含 Lucian 的所有书籍,以及作者为“Lucian”的所有书籍,我该怎么做? 我需要使用子查询吗? 到目前为止我已经有了这个(我使用 yii 框架),这就是标准的样子:

SELECT * 
FROM books t 
LEFT JOIN products_authors a ON a.id_book = t.id 
LEFT JOIN authors b ON b.id = a.author_id 
WHERE t.name LIKE %Lucian% 
OR b.name LIKE %Lucian%

最佳答案

试试这个 -

SELECT b.id, b.name, a.name
FROM books b
INNER JOIN products_authors pa ON pa.book_id = b.id 
INNER JOIN authors a ON a.id = pa.author_id
WHERE b.name LIKE %Lucian% 
OR a.name LIKE %Lucian%

关于MySql 按书名和作者名选择书籍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46219031/

相关文章:

Mysql 5.1 - 错误添加外键约束

MySql 索引在范围扫描中的工作方式不同

MySQL 更新表并在子查询中从同一个表中进行选择

MySQL - 选择,没有问题

php - MySQL 选择(Zend Framework 数据库选择)

mysql 与 order by 和 limit 的联合

mysql - 比 65 列 Toggles 表更好的数据库设计?

mysql - 在创建语句中为表字段设置默认值时出错

mysql - 连接两个表和两个联结表

linux - 相当于 Bash 中的 select() 系统调用