0

ディスプレイに 1 つの情報単位を表示したい。たとえば、ID 1 の「jscbb_directory」には、ID 1 の「pictures」列の情報のみを表示したいとします。代わりに、pictures.picture にすべてを表示しています。

SELECT jscbb_directory.id, pictures.picture
FROM jscbb_directory, pictures
WHERE jscbb_directory.id = pictures.picture;

出力:

1
2
3
4

フロントエンドとして fourwinds を使用しています。ユーザーが ID 1 の「jscbb_directory」をクリックすると、「pictures」の ID 1 からの情報のみが表示されるようにしたいと考えています。

4

3 に答える 3

3

表示したいIDを指定してみてください

そのように

    SELECT jscbb_directory.id, pictures.picture
    FROM jscbb_directory, pictures
     WHERE jscbb_directory.id = pictures.picture
     AND jscbb_directory.id = 1;   // <--------- put the id number you want or the variable $id
于 2013-01-30T23:46:26.370 に答える
2

JOINと一緒に使用することをお勧めします。ON問題を修正するためではなく、読みやすくするためです。

SELECT君が好きなものならなんでも。ここで必要な列を選択します。
FROM jscbb_directory JOIN pictures ON jscbb_directory.id = pictures.picture

これで、以前と同じものが得られましたが、もう少し読みやすくなりました。

そのため、フィルターを最後に追加します。where jscbb_directory.id=1;

あなたがやろうとしていることを自由に明確にしてください。あなたの質問を理解しているかどうかわかりません。


これが私の答えです。

SELECT jscbb_directory.id, pictures.picture
FROM jscbb_directory JOIN pictures ON jscbb_directory.id = pictures.picture
WHERE jscbb_directory.id = 1;

そして、それは出力します

+----+---------+
| id | picture |
+----+---------+
|  1 |       1 |
+----+---------+

なぜ同じことを2回したいのかわかりません。だからおそらくあなたはこれを試してみるべきです

SELECT jscbb_directory.id
FROM jscbb_directory JOIN pictures ON jscbb_directory.id = pictures.picture
WHERE jscbb_directory.id = 1;

またはこれ

SELECT pictures.*
FROM jscbb_directory JOIN pictures ON jscbb_directory.id = pictures.picture
WHERE jscbb_directory.id = 1;

そして彼らが何をするか見てください

于 2013-01-30T23:47:03.333 に答える
1

JOIN 条件と WHERE 句フィルターの使用を混同しているようです。ONor句を使用して JOIN 条件を明示USINGし、WHERE でフィルター条件を適用する必要があります。したがって、次のようになります。

SELECT jscbb_directory.id, pictures.picture
FROM jscbb_directory
INNER JOIN pictures ON jscbb_directory.id = pictures.picture
WHERE jscbb_directory.id = ?

Where?は、フィルタリングする ID に置き換えられます。

于 2013-01-30T23:44:06.773 に答える