2015-11-02 65 views
0

我有一个字符串引用了一个jpg文件,我们假设'34563.jpg'。 现在我想知道这个文件是否分配给这3个表中的任何记录。将字符串与多个表中的同一列进行比较mysql

所有3代表具有相同的结构

id,name,img 

我的查询只返回true的第一个表:

SELECT clients_tbl.img, pets_tbl.img, places_tbl.img 
FROM clients_tbl, pets_tbl, places_tbl 
WHERE (clients_tbl.img = '34563.jpg') 
OR (pets_tbl.img = '34563.jpg') 
OR (places_tbl.img = '34563.jpg'); 

我需要从该查询一个布尔响应,已发现或不。

感谢

回答

0

您需要UNION

SELECT COUNT(t.*) when_not_found_0 
FROM (
    SELECT img 
    FROM clients_tbl 
    WHERE clients_tbl.img = '34563.jpg' 
    UNION 
    SELECT img 
    FROM pets_tbl 
    WHERE pets_tbl.img = '34563.jpg' 
    UNION 
    SELECT img 
    FROM places_tbl 
    WHERE places_tbl.img = '34563.jpg' 
) t 
+0

'UNION'很棒 – quakeglen

0

您可以设置别名:

SELECT clients_tbl.img as img_clients, pets_tbl.img as img_pets, places_tbl.img as img_places 

后来打开结果布尔值。

相关问题