gpt4 book ai didi

php - 需要mysql查询推荐

转载 作者:行者123 更新时间:2023-11-29 12:37:01 25 4
gpt4 key购买 nike

假设这是可能的,我正在寻找一种方法(MYSQL 查询)来连接表,其中返回的值都不重复。我想加入三个表(A、B、C)。这三个表的公共(public)列是 user_id。 user_id 在表 A 中将是唯一的 - 用户在表 A 中只有一行/记录。但是,user_id 在表 B 和 C 中不会是唯一的 - 用户可能在表 B 和 C 中都有多条记录/行。已经尝试过 INNER、LEFT 和 RIGHT JOINS 以及 UNION,但是它会复制表 A 中的结果以与表 B 和 C 中的结果相匹配。

Row 1:    Value1(from A)        Value1(from B)        Value1(from C)
Row 2: Value1(from A) Value2(from B) Value2(from C)
Row 3: Value1(from A) Value3(from B) Value3(from C)

我想避免这种情况。相反,我更喜欢:

Row 1:    Value1(from A)        Value1(from B)        Value1(from C)
Value2(from B) Value2(from C)
Value3(from B) Value3(from C)
Row 2: Value2(from A) Value1(from B) Value1(from C)
Value2(from B) Value2(from C)
Value3(from B) Value3(from C)

预先感谢您的帮助。

最佳答案

如果您的主要兴趣是让每一行返回 B 和 C 中的所有其他值,并且您不关心列数,那么以下内容可能有用:

从内部联接 B 使用 (user_id) 内部联接 (user_id) 中选择 A.F1、GROUP_CONCAT(B.F1) AS all_b_F1、GROUP_CONCAT(C.F1) AS all_c_F1 ORDER BY A.F1;

请注意,由于您没有指定字段名称,因此我已经编写了它们。您可以为 B 和 C 中的其他字段添加额外的 GROUP_CONCAT 列,或者将它们一起 CONCAT 或 CONCAT_WS 来代替当前查询中的 B.F1。

根据您想要对结果执行的操作,此查询可能足够好。例如,您可以在 PHP 中分解 all_b_F1 以获取单独的值,或者使用 FIELDS ENCLOSED BY '' 将查询结果从 MySQL 导出到 csv,以便在将 csv 导入 Excel 时,B 和 C 中的每个值都有自己的单元格.

关于php - 需要mysql查询推荐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26619018/

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