2016-11-27 14 views
2

私は次のようにMySQLのテーブルを持っている:MySQLでこのクエリの解決策を見つけるのに助けが必要ですか?

id p_id c_id 

1 11  1 

2 11  2 

3 11  3 

4 12  1 

5 12  3 

6 13  1 

7 13  2 

私はc_idは1と2であるとき、それはp_idの11と13を返すべきであるとのクエリを必要とします。

SELECT DISTINCT p_id FROM `Table Name` where c_id in (1,2) 

返します:11, 12, 13

私は、次のクエリを試してみました。

しかし、返信するには、11 , 13が必要です。

+0

私foが働いた(1,2)でC_ID '表NAME'区別P_IDを選択し、(12)にないP_ID? –

答えて

2

あなたのようにクエリを記述することができます。これは、テーブル自体

+0

それは間違っている私の友人 はこの問題のために働かない。 –

+0

あなたは間違っていますか?問題の詳細をいくつか挙げてください。 –

+0

https://www.imageupload.co.uk/image/BP5m これは私の問題です。このために必要な答えは –

0

にあなたのクエリが1 または 2をc_isに関連p_idsために自己結合をチェックしています。しかし、あなたが望むもの

SELECT DISTINCT a.p_id 
FROM table_name AS a 
JOIN table_name AS b ON a.p_id=b.p_id 
WHERE a.c_id ='1' AND b.c_id ='2'; 

あなたはこのように書くことができます1 2です:

SELECT DISTINCT t1.p_id 
FROM table_name as t1 
JOIN table_name as t2 
    ON t1.id = t2.id 
WHERE t1.c_id = 1 AND t2.c_id = 2; 
+0

私の答えとどう違うのですか?同じ答えを与えることによって、それには何の価値も追加されません。 –

+0

これは(いくつかのタイプミスを除いて)私が書いたときにあなたの答えを見ていないわけではありません。 –

0
SELECT x.id 
    FROM my_table x 
WHERE other_column IN('a','b') 
GROUP 
    BY x.id 
HAVING COUNT(*) = 2; 
+0

2行にaがある場合でも、IDは – Mihai

+0

です。これは一般的な解決策です – Strawberry

2
SELECT DISTINCT a.p_id 
FROM table_name AS a 
JOIN table_name AS b ON a.p_id=b.p_id 
WHERE a.c_id ='1' AND b.c_id ='2'; 

+0

これは私の答えとどのように違うのですか?同じ答えを与えることによって、それには何の価値も追加されません。 –

関連する問題