1

私は次の声明を与えられています:

SELECT id FROM record_database WHERE id = <up to me to complete the statement>

レコード データベースにはさまざまなフィールドがあり、その中には id と name があります。

この select ステートメントを完成させて、すべての ID と対応するすべての名前を並べて表示することになっています。これは、この 1 行の SQL コードを使用して行う必要があります。UNION または OR を使用できるというヒントが与えられました。

次のバリエーションを試しました。

SELECT id FROM record_database WHERE id = '*'
UNION
SELECT name FROM record_database WHERE name = '*';

しかし、これらのどれも機能しませんでした。ANDでこれをやってみましたが、表示列を使ってみましたが、どちらもうまくいきませんでした。

どんな助けでも大歓迎です。

4

4 に答える 4

1

あなたが探している場合:

id
name
id next
name next

次に、このトリックを使用します。

SELECT col2 
FROM (
    SELECT id, col2=convert ( varchar (size of name field),id) 
    FROM table 
    WHERE ....

    UNION ALL

    SELECT id, name 
    FROM table 
    WHERE ....
     ) 
ORDER BY id

これorder byにより、id と name が並べて表示され、col2 には最初の行に id が含まれ、2 番目の行に name が含まれます。

于 2012-09-16T21:38:16.207 に答える
1

これは非常に宿題のようなにおいがするので、完全な回答は提供しませんが、異なる結果セットを返すクエリを結合することはできません。ID は整数であり、NAME はいくつかの varchar であり、ヒントに記載されているように結合しないと推測しています。

「完結」というと、最後まで足すだけということですか?もしそうなら、それは初心者ではありません。「WHERE」句に何かを追加するだけでは、返されるフィールドのリストを増やすことはできません。返されるようにするには、実際のフィールド リストに追加する必要があるため、指定したクエリへの追加に本当に制限されているかどうかを明確にすることができます。

于 2012-09-16T19:26:36.777 に答える
0

これを試して

SELECT * FROM record_database WHERE id = '*' OR name = '*'
于 2012-09-16T19:31:30.087 に答える