php - 连接两个表,一个表有多行匹配

标签 php mysql database join

试图弄清楚是否可以在连接表的地方创建查询,表一小于表二,表二有多个引用匹配表一的条目,查询将输出一个连接,其中表一的长度被保留但您只需添加更多列。不确定这是否有意义所以这是我所追求的示例

Table One                                  Table two
+-----------------------------+           +-----------------------------+
| id | english  |  definition |           | id | word_id  |  sentence   |
+-----------------------------+           +-----------------------------+
|1   |    A1    |    blah     |           |1   |    1    |   blahblah1  |
|2   |    B4    |    blah2    |           |2   |    1    |   blahblah2  |
+-----------------------------+           |3   |    1    |   blahblah3  |
                                          |4   |    2    |   blahblah4  |
                                          |5   |    2    |   blahblah5  |
                                          +-----------------------------+

********* 查询应该返回类似于 ***************** 的内容

+----------------------------------------------------------------+
| id | english  |  definition | sentence | sentence2 | sentence3 | 
+----------------------------------------------------------------+
|1   |    A1    |    blah     | blahblah1|  blahblah2| blahblah3 |
|2   |    B4    |    blah2    | blahblah4|  blahblah5|           |
+----------------------------------------------------------------+

我当前的查询看起来像这样并导致:

$query = "SELECT * FROM T1 INNER JOIN T2 ON T1.id = T2.word_id";

导致:

+----------------------------------------+
| id | english  |  definition | sentence |
+----------------------------------------+
|1   |    A1    |    blah     | blahblah1|
|1   |    A1    |    blah     | blahblah2|
|1   |    A1    |    blah     | blahblah3| 
|2   |    B4    |    blah2    | blahblah4|
|2   |    B4    |    blah2    | blahblah5|
+----------------------------------------+

我正在使用 PHP 和 MySql。

更新!!

保留我的原始查询并使用 PHP 处理结果也获得了良好的性能。如果您需要我发布我的代码,请告诉我。

最佳答案

您可能正在寻找 GROUP_CONCAT()

SELECT T1.id, T1.english,T1.definition,
GROUP_CONCAT(T2.sentence ORDER BY T2.ID SEPARATOR '|') 
FROM Table1 T1 INNER JOIN Table2 T2 ON T1.id = T2.word_id
Group by word_id

Sample fiddle

关于php - 连接两个表,一个表有多行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18158975/

相关文章:

php - APNS PHP 不发送通知

php - 在 WooCommerce 3 中将结帐订单备注字段移动到 "create an account"上方

c# - 在 C# GUI 应用程序中将远程 Mysql 数据库同步到本地

mysql - 如何在mysql中加权 'ORDER BY'?

C# 恢复在线数据库

PHP Jquery JSON 捕获

php - 在 CakePHP 3 中动态动态添加现有表中的列

c# - ASP.NET Core MacOS 连接字符串

javascript - 从客户端获取代码隐藏中的输入文本框值

java - Realm - 在应用程序之间共享数据库