【问题标题】:SQL JOIN 2 conditionsSQL JOIN 2 条件
【发布时间】:2012-11-13 16:37:57
【问题描述】:

我的 mysql 数据库中有两个表。 表 1:喊话箱 表2:用户

我的桌子是这样的

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'

我得到了非常错误的结果。 所以我在这方面完全是新手,所以请帮忙=)

【问题讨论】:

    标签: mysql sql tsql join


    【解决方案1】:

    您从两个表中获取笛卡尔积,因为您缺少链接两个表的非常重要的条件。在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'
    

    【讨论】:

    • 谢谢你,工作就像一个魅力! =)
    【解决方案2】:
    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'
    

    如果您是新手,请获取有关加入的信息

    已回答问题:What's the difference between INNER JOIN, LEFT JOIN, RIGHT JOIN and FULL JOIN?

    【讨论】:

      【解决方案3】:
      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'
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-09-29
        • 2016-03-15
        • 2014-01-05
        • 2014-12-18
        • 2014-10-04
        • 2015-05-01
        • 2018-12-11
        相关资源
        最近更新 更多