【发布时间】:2015-06-15 18:22:53
【问题描述】:
我正在尝试执行 MySQL JOIN 查询以从两个表中获取内容。
这就是表 A 的样子:
表 A
ID | ISBN | Type
----------------------
12 | 0338566 | book
15 | 6656565 | post
16 | 9435644 | book
20 | 8525446 | book
还有表 B
ID | tableA_id | Key | Value
---------------------------------------------
1 | 12 | Author | John Doe
2 | 12 | Title | Book Title 1
3 | 16 | Title | Book Title 2
4 | 20 | Author | John Doe
5 | 20 | Title | Book Title 3
我正在尝试构建我的 SQL 语句来输出所有书籍数据,例如:
ISBN | Author | Title
-------------------------------------
0338566 | John Doe | Book Title 1
9435644 | | Book Title 2
8525446 | John Doe | Book Title 3
在查找 SQL JOIN 语句后,我想到了:
SELECT tableA.ISBN, tableB.value
FROM tableA, tableB
WHERE tableA.ID = tableB.tableA_id AND tableA.type = “book” AND (tableB.key = "title" OR tableB.author = "store_selector" )
查询只返回 2 列,因为我只引用 tableB.value 一次,即使我需要获取其中的两个值(标题和作者)。
我将如何正确构建此查询?
【问题讨论】:
-
我建议您正确构建数据库而不是查询。将
Author和Title列添加到tableB -
@umka 这实际上是 Wordpress 在 wp_posts 表和 wp_postmeta 表中存储帖子数据的方式。