如何通过爆炸从两个表中获得不同的结果?

时间:2018-08-15 09:07:53

标签: php mysql select distinct explode

我需要你的帮助。这是一个示例:

表A

id | colors
-------------------------
1  | green
2  | green, blue, red
3  | blue, red

表B

id | colors | name
--------------------------
1  | green  | Apple
2  | blue   | Water
3  | red    | Fire
4  | yellow | Sun

在PHP中,如果表A中存在颜色,则尝试选择表B的不同名称。

1 个答案:

答案 0 :(得分:1)

您可以使用find_in_set并检查结果> 0

select distinct a.* 
from tableB b
inner join tableA a on  find_in_set(b.colors, a.colors) >0  

要获得结果,您可以

$sql="SELECT DISTINCT b.name. b.colors 
    FROM b INNER JOIN a ON find_in_set(b.colors, a.colors) >0";
$result=mysqli_query($con, $sql);
 while($rows=mysqli_fetch_array($result)) { 
    echo $rows["name"]; 
    echo $rows["colors"]; 
    }