1

次のテーブル構造を持っています、

--------------------------------------------------------
| id   |   po_bill_details_id   |   po_id   |   status |
--------------------------------------------------------
| 1    |   18                   |   6       |   1      |
| 2    |   16                   |   7       |   1      |
| 3    |   18                   |   7       |   1      |
--------------------------------------------------------

po_bill_details_idを選択する必要があります。これは、指定されたpo_idの配列に共通の値になります。つまり、po_idの入力として[6,7]を指定した場合、po_bill_details_idからは16ではなく18のみを取得する必要があります。このロジックについてMySQLにクエリするにはどうすればよいですか?

4

4 に答える 4

2

次のことを試してください。私はモバイルを使用しているので、テストすることはできません。配列内の要素の数に基づいて、カウントを変更できます。

SELECT bill_id FROM yourtable
WHERE PO_id IN (7,6) 
GROUP BY bill_d 
HAVING COUNT(DISTINCT po_id) = 2
于 2012-12-05T06:44:46.313 に答える
1

あなたが試すことができます ::

select 
po_bill_details_id

from table

where po_id in (/*your array*/)

group by po_bill_details_id having count(po_id)=(/*your array's length*/)
于 2012-12-05T06:35:34.600 に答える
1
SELECT po_bill_details_id
FROM   <table>
WHERE  po_id IN ( 6, 7 )
HAVING COUNT(po_bill_details_id) > 1  
于 2012-12-05T06:36:51.177 に答える
-1

意味ですか

select distinct po_bill_details_id from YOUR_TABLE where po_id=6 or po_id=7;
于 2012-12-05T06:33:09.263 に答える