0

Y と X の 2 つのテーブルがあります。Y の各項目は、次のように多くの Xi を持つことができます。

Y   X
--  --
A   X1  √
B   X1
B   X2
B   X3
C   X2
D   X1
D   X2
E   X1  √

目盛りで表示される X1 のみを持つ Y を取得したい。クエリとは何ですか?

私のデータベースは Android Sqlite です。

Select * 
From Y 
Inner join X 
on Y.id = X.Yid 
where X.id is only X1 and nothing else

実際のクエリに相当するものをどのように書くことができますかis only X1 and nothing else

4

3 に答える 3

1

言い換えると、 をY持ちX1、他の を持たないものすべてが必要Xです。SQL では:

SELECT *
FROM Y
WHERE EXISTS (SELECT X.id
              FROM X
              WHERE X.id = Y.Xid
                AND X.name = 'X1')
  AND NOT EXISTS (SELECT X.id
                  FROM X
                  WHERE X.id = Y.Xid
                    AND X.name != 'X1')

または、最初のサブクエリを結合として記述することもできます。

SELECT Y.*
FROM Y JOIN X
       ON Y.Xid = X.id
WHERE X.name = 'X1'
  AND NOT EXISTS (SELECT X2.id
                  FROM X AS X2
                  WHERE X2.id = Y.Xid
                    AND X2.name != 'X1')
于 2013-03-05T12:20:39.010 に答える
0

クエリは次のようになります。

 Select * 
  From Y 
  inner join X 
 on Y.Xid = X.id 
  where X.id = 'X1'
于 2013-03-05T11:32:08.500 に答える
0
Cursor c = sampleDB.rawQuery("SELECT * FROM " +
            Y +
            " where X=x1", null);

    if (c != null ) {
        if  (c.moveToFirst()) {
            do {
                String yarray[] = c.getString(c.getColumnIndex("Y"));
            }while (c.moveToNext());
        }
    }

Now yarray[] will contain all your y values
于 2013-03-05T11:44:10.590 に答える