从包含多个表的查询中获取CSV
问题描述:
我正在尝试进行查询以从2个表中提取元素,这些表通过另一个表链接。从包含多个表的查询中获取CSV
所以我有3个表:
authors
- id, name, book
category
- id, name, description
category-author
- id, idauthor, idcategory
现在我要进行查询,使下面的输出:
row: authors.id, authors.name, authors.book, category.name
我不知道链接什么类别的使用2台只有,所以我需要使用最后一个,类别作者表。作者和类别的ID通过该表链接。
我有以下查询:
SELECT authors.id, authors.name, authors.book, category.name FROM category, author LEFT JOIN SELECT ??
我卡在查询的剩余部分。
此外,当我有这个查询,我可以提取一个CSV与phpmyadmin?
答
您可以使用表连接从不同表中获取相关信息。应该使用外键来指定表之间的关系(即category-author
的列idcategory
可能是指主键列category.id
的外键)。在加盟条款时,您只需指定哪些表要加入并在哪一列:
SELECT table1.col1, table2.col2 FROM table1 JOIN table2 ON table1.pkCol = table2.fkCol
这意味着你不能指定一个JOIN子句中的任何SELECT
或FROM
条款。您希望从连接表中选择的列全部在最初的SELECT
语句中指定,并且您只在FROM
子句中指定一个表,您随后可以从中执行表连接。 在你的情况,我想这应该让你开始:
SELECT authors.id, authors.name, authors.book, category.name
FROM category
LEFT JOIN category-author ON category-author.idcategory = category.id
LEFT JOIN authors ON authors.id = category-author.idauthor
我不知道你是多么熟悉的外键,主键和表连接,所以我就不细说了更多关于这一点。我认为在FROM
子句中指定多个表是不好的做法,即使您的数据库系统仍然支持它(Related question)。
从此,您可以轻松地从PhpMyAdmin中导出结果,因为每个表概览都有一个导出按钮,包括查询结果。