9

こんにちは、誰かがSQLについて私を助けてくれますか

私はテーブルにこのデータを持っています:

追加日 | 場所 | 状態
2012-08-01 マニラ 1
2012-08-01 日本 1
2012-08-01 セブ 1

2012-08-04 マニラ 1
2012-08-04 セブ 1
2012-08-04 アフリカ 1

2012-08-06 マニラ 1
2012-08-06 日本 1
2012-08-06 セブ 1


「マニラ」、「日本」、「セブ」の場所でステータス = 1 の date_added 結果を取得するにはどうすればよいですか

日付を取得するには、3 つのデータが存在している必要があります。

結果は次のようになります: この表に基づく

date_added
 2012-08-01
 2012-08-06

2012 年 8 月 4 日以降、「日本」は存在しませんでした。

私の現在のサンプル SQL:

SELECT date_added FROM TABLE WHERE 場所 ='マニラ' AND 場所 ='日本'
       AND 場所 ='セブ' AND ステータス =1;

助けてください.....どんな助けでも大歓迎です

4

5 に答える 5

11

これを試して:

SELECT DATE_ADDED 
FROM TABLE 
WHERE LOCATION IN ('MANILA' , 'JAPAN' , 'CEBU')
AND STATUS =1
GROUP BY DATE_ADDED
HAVING (COUNT(DISTINCT LOCATION)=3)
于 2012-08-06T10:59:01.310 に答える
2

INSQL演算子が必要です。

SELECT date_added FROM TABLE WHERE location IN ('Manila', 'Japan', 'Cebu') AND STATUS =1;

ORまたは、演算子を使用して場所ステートメントを括弧で囲む必要があります。

SELECT date_added FROM TABLE WHERE ( location ='Manila' OR location ='Japan' OR location ='Cebu' ) AND STATUS =1;
于 2012-08-06T11:00:27.507 に答える
0

when you use AND condition on the same field,it will always result to false because a field can only have 1 possible value. So you needto use IN for that

SELECT Date_added 
FROM   myTable
WHERE  `Location` IN ('MANILA' , 'JAPAN' , 'CEBU')
          AND `Status` =1
GROUP BY Date_added 
HAVING   COUNT(DISTINCT Location) = 3
于 2012-08-06T11:13:04.667 に答える
0
WHERE location IN ('Manila' , 'Japan', 'Cebu') AND status = 1
于 2012-08-06T11:00:44.697 に答える
0

これを試して

SELECT date_added FROM TABLE WHERE location ='Manila' or location ='Japan'  or location ='Cebu' AND STATUS =1;

また

select date_added FROM TABLE WHERE location in ('Manila','Japan','Cebu') AND status='1' GROUPED BY date_added
于 2012-08-06T10:59:28.237 に答える