试图弄清楚是否可以在连接表的地方创建查询,表一小于表二,表二有多个引用匹配表一的条目,查询将输出一个连接,其中表一的长度被保留但您只需添加更多列。不确定这是否有意义所以这是我所追求的示例
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
关于php - 连接两个表,一个表有多行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18158975/