2017-05-05 36 views
0

嗨,我必须搜索铁和面包车。在我的搜索条件下,铁排成一排,厢式车排在另一排。两者都有相同的父母身份。我如何在一个mysql查询中找到这两个记录。如何为一个父母标识找到两个不同的匹配数据?

我使用此查询。

SELECT * FROM `products prod,parents p ` 
WHERE `p.id` =1 AND prod.name = 'Van' AND prod.name = 'Iron' 

这是我的表

家长

 id  
---------- 
    1  
    2  

儿童

 id | name | parent 
--------------------------------- 
    5 | iron |  1 
    6 | van  |  1 
    7 | jane |  2 

我想

id | name | parent 
------------------ 
5 | van | 1 
6 | iron | 1 

我怎样才能输出就像我提到的。

回答

1

使用In and Inner Join

SELECT * FROM products prod Inner join parents p on p.id=prod.parent 
WHERE `p.id` =1 AND prod.name In('Van' ,'Iron') 
+0

我如何使用LIKE用这种方法? –

+0

就像性能比较慢,所以请使用IN而不是LIKE –

0

使用或代替运营商和

SELECT * 
FROM products prod, 
    parents p 
WHERE p.id=1 AND (prod.name='Van' OR prod.name='Iron') 
0

喜查询,找出相同的父ID应该是这样的

SELECT prod.id,prod.name,p.parent 
    FROM products prod,parents p 
WHERE p.id in 
(SELECT parent FROM parents 
    WHERE 2 >= 
    (SELECT COUNT(parent) FROM parent WHERE p.id=parent GROUP BY parent) 
); 
相关问题