两个表中的MySQL查询输出未正确生成
我的第一张桌子“table1”:两个表中的MySQL查询输出未正确生成,mysql,join,Mysql,Join,我的第一张桌子“table1”: ------|----------|----------| | Id | Name | Location | ------|----------|----------| | 1 | Ashish | 1,2 | ------|----------|----------| | 2 | Jay | 3 | ------|----------|----------| | 3 | Sabir | 4,
------|----------|----------|
| 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这个是给我的。再次谢谢。