两个表中的MySQL查询输出未正确生成

两个表中的MySQL查询输出未正确生成,mysql,join,Mysql,Join,我的第一张桌子“table1”: ------|----------|----------| | Id | Name | Location | ------|----------|----------| | 1 | Ashish | 1,2 | ------|----------|----------| | 2 | Jay | 3 | ------|----------|----------| | 3 | Sabir | 4,

我的第一张桌子“table1”:

------|----------|----------|
| Id  |   Name   | Location |
------|----------|----------|
| 1   | Ashish   |   1,2    |
------|----------|----------|
| 2   |  Jay     |    3     |
------|----------|----------|
| 3   | Sabir    |   4,1    |
------|----------|----------|
我的第二张桌子“表2”:

 |------|----------|----------|
 | Id   |   Location_name     | 
 |------|----------|----------|
 |  1   |     Ahmedabad       |             
 |------|----------|----------|
 |  2   |       Keshod        |
 |------|----------|----------|
 |  3   |       Junagadh      |
 |----- |----------|----------|
 |  4   |       Rajkot        |
 |----- |----------|----------|
我尝试此查询,但未正确生成输出:

Select t1.Name,t2.Location_name from table1 as t1 Left Join table2 as t2 ON t1.Location = t2.Id WHERE t1.Location IN (t1.Location)
将生成的输出为:

 |-----------|---------------------------|
 | Name      |   Location_name           | 
 |-----------|---------------------------|
 |  Ashish   |    Ahmedabad              |             
 |-----------|---------------------------|
 |  Jay      |    Junagadh               |             
 |-----------|---------------------------|
 |  Sabir    |    Rajkot                 |             
 |-----------|---------------------------|
但我想把这个输出:

 |-----------|---------------------------|
 | Name      |   Location_name           | 
 |-----------|---------------------------|
 |  Ashish   |    Ahmedabad,Keshod       |             
 |-----------|---------------------------|
 |  Jay      |    Junagadh               |             
 |-----------|---------------------------|
 |  Sabir    |    Rajkot,Ahmedabad       |             
 |-----------|---------------------------|
请尝试此查询

SELECT t1.name, GROUP_CONCAT(t2.location_name) FROM table1 t1, table2 t2
WHERE FIND_IN_SET(t2.id, t1.location)
GROUP BY t1.id
或者使用左连接

SELECT t1.name,GROUP_CONCAT(t2.location_name) FROM table1 t1
LEFT JOIN table2 t2 ON FIND_IN_SET(t2.id, t1.location)
GROUP BY t1.id
请尝试此查询

SELECT t1.name, GROUP_CONCAT(t2.location_name) FROM table1 t1, table2 t2
WHERE FIND_IN_SET(t2.id, t1.location)
GROUP BY t1.id
或者使用左连接

SELECT t1.name,GROUP_CONCAT(t2.location_name) FROM table1 t1
LEFT JOIN table2 t2 ON FIND_IN_SET(t2.id, t1.location)
GROUP BY t1.id

MySQL无法理解您的
Location
列是一个逗号分隔的列表。您需要为多个位置添加多行。@PrerakSola好的,在一个查询中是否有其他解决方案用于此输出?另一个解决方案?对请参阅标准化。检查此项:我已更改了您的表结构。看一看。查询是相同的。MySQL无法理解您的
Location
列是逗号分隔的列表。您需要为多个位置添加多行。@PrerakSola好的,在一个查询中是否有其他解决方案用于此输出?另一个解决方案?对请参阅标准化。检查此项:我已更改了您的表结构。看一看。这个问题是一样的。谢谢PravinS这个是给我的。再次谢谢。谢谢PravinS这个是给我的。再次谢谢。