gpt4 book ai didi

php - 从涉及多个表的查询中获取 CSV

转载 作者:行者123 更新时间:2023-11-29 06:03:31 24 4
gpt4 key购买 nike

我正在尝试查询以从 2 个表中提取元素,这两个表通过另一个表链接。

所以我有 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 ??

我卡在了查询的剩余部分。

另外,当我有这个查询时,我可以只用 phpmyadmin 提取 CSV 文件吗?

最佳答案

您可以使用表连接从不同的表中获取相关信息。表之间的关系应使用外键指定(即 category-author 中的列 idcategory 可能是引用主键列 category.id< 的外键)。在联接子句中,您只需指定要联接的表以及联接的列:

SELECT table1.col1, table2.col2
从表 1
JOIN table2 ON table1.pkCol = table2.fkCol

这意味着您不能在 JOIN 子句中指定任何 SELECTFROM 子句。您希望从连接表中选择的列都在初始 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 中导出结果,因为每个表概览(包括查询结果)都有一个导出按钮。

关于php - 从涉及多个表的查询中获取 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43277561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com