php - MySQL/PHP 将单个记录连接到多个记录

标签 php mysql join

我有一个名为 ABC 的表,有 3 个字段:id1、id2、id3,其中包含数据:

id1 | id2 | id3
________________
1   |  5  | 3
3   |  4  | 2
2   |  3  | 1

我有第二个表,名为 XYZ,有 2 个字段,id 和标题,其中包含数据:

id |  title
______________
1  |  title_1 
2  |  title_2 
3  |  title_3
4  |  title_4
5  |  title_5

表 ABC 中的 id 与表 XYZ 中每条记录的 id 匹配。 id 喜欢做的是将 ABC 表中的 id 与 XYZ 表中的 id 连接起来,并在一行中显示标题。因此,如果输出表 ABC 中的前两条记录,它将如下所示:

title_1, title_5, title_3
title_3, title_4, title_2

用 PHP 输出没问题,只是对 SQL 有点迷惑。我一直在尝试使用左连接,但还没有走得太远。任何帮助将不胜感激。

最佳答案

您可以使用不同的连接条件多次连接同一个表:

SELECT xyz1.title as title1, xyz2.title as title2, xyz3.title as title3
FROM ABC
JOIN XYZ as xyz1 ON xyz1.id = ABC.id1
JOIN XYZ as xyz2 ON xyz2.id = ABC.id2
JOIN XYZ as xyz2 ON xyz3.id = ABC.id3

这应该正确输出

title_1, title_5, title_3
title_3, title_4, title_2

关于php - MySQL/PHP 将单个记录连接到多个记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7174106/

相关文章:

javascript - 使用 select-2 插件进行编辑时国家/地区下拉列表不起作用

php - 使用 current_timestamp 创建表并在每次更新行时更新它

php - 使用 Simple HTML DOM 查找具有最多 <p> 的 DIV

php - 连接表后得到错误的值 - MySQL - PHP

sql - *= 在 Sybase SQL 中

mysql - 何时为 MySQL (SQL) 使用 JOIN

php -\\x80-\\xFF 指的是什么?

MySQL 'WHERE AND' 问题

mysql - COUNT 同一列的多种类型

mysql - 没有权限的用户仍然可以选择