2

私のmysqlデータベースには2つのテーブルがあります。table1: シャウトボックス table2: ユーザー

私のテーブルは次のようになります

TABLE SHOUTBOX (id, name, title, user_id)

TABLE USERS (id, name, profile_image)

私がやりたいのは、テーブル SHOUTBOX からすべてを表示することですが、条件は USERS テーブルの profile_image = '2' である必要があります。だから私はこれを試しました:

SELECT shoutbox.id, shoutbox.name, shoutbox.title, shoutbox.user_id, user.profile_image
FROM shoutbox, users
WHERE users.profile_image = '2'

そして、私は非常に間違った結果を得ています。だから私はこれでまったくの初心者なので、助けてください=)

4

3 に答える 3

3

両方のテーブルをリンクする非常に重要な条件がないため、2 つのテーブルからデカルト積を取得しています。WHEREこの条件を句に追加します。

SELECT ... FROM ....
WHERE users.profile_image = '2' AND
      shoutbox.user_ID = users.id

SQL-92しかし、構文を使用することをお勧めしました

SELECT   shoutbox.id, 
         shoutbox.name,
         shoutbox.title, 
         shoutbox.user_id, 
         users.profile_image
FROM     shoutbox INNER JOIN users ON shoutbox.user_ID = users.id
WHERE    users.profile_image = '2'
于 2012-11-26T08:06:29.540 に答える
3
SELECT shoutbox.id, shoutbox.name, shoutbox.title, 
shoutbox.user_id, user.profile_image
FROM shoutbox
inner join users
on user_id= users.id
WHERE users.profile_image = '2'

初心者の場合は、結合に関する情報を取得してください

回答済みの質問: INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN の違いは何ですか?

ここに画像の説明を入力

于 2012-11-26T08:06:55.100 に答える
0
SELECT shoutbox.id, 
       shoutbox.name, 
       shoutbox.title, 
       shoutbox.user_id, 
       user.profile_image
FROM shoutbox
join users
on shoutbox.user_id=users.id
WHERE users.profile_image = '2'
于 2012-11-26T08:07:26.297 に答える