在mysql的select查询中区别不通

0 php mysql database select distinct

我在这样的mysql数据库的 select查询中使用 distinct

$query=mysql_real_escape_string($_GET['query']);
$query_for_result=mysql_query("SELECT DISTINCT *
FROM vendor
LEFT JOIN branches ON branches.vendor_id = vendor.vendor_id
WHERE
(vendor.name LIKE '%".$query."%'
OR vendor.description LIKE '%".$query."%'
OR branches.city LIKE '%".$query."%')");
$qrow=mysql_fetch_array($query_for_result);
if(empty($qrow)){
   while($qrow=mysql_fetch_array($query_for_result)){

          Some Code to display result 
<?php
   }
    mysql_close();
}
    ?>
Run Code Online (Sandbox Code Playgroud)

问题是这个,它多次显示每个结果,它从分支表中显示每个结果和它喜欢的城市,(意味着:如果供应商表中的结果在分支表中有5个城市它将显示5次)

Ste*_*ieG 6

这是工作.您返回的是两个表中的所有列值.因此,如果供应商有5个城市,那么有5个不同的结果:

Vendor   City
A        London
A        New York
B        London
C        London
Run Code Online (Sandbox Code Playgroud)

这些行都不相同,因此,它们是查询的不同结果.

假设你想要不同的供应商列表,那么你需要这样的东西:

SELECT DISTINCT vendor.*
FROM vendor
LEFT JOIN branches ON branches.vendor_id = vendor.vendor_id
WHERE
(vendor.name LIKE '%".$query."%'
OR vendor.description LIKE '%".$query."%'
OR branches.city LIKE '%".$query."%')");
Run Code Online (Sandbox Code Playgroud)