【问题标题】:Two select statements in a single statement单个语句中的两个 select 语句
【发布时间】:2011-08-28 23:35:28
【问题描述】:

我基本上有两个表,分别称为imagesusersimages 表有以下字段:

i_id | s_id | u_id | name | filename |

u_idusers 表中u_id 字段的外键,该表具有以下字段:

u_id | username | password | email |

我正在运行这样的查询:

SELECT s_id, u_id, name, filename, filesize FROM images WHERE name = 'fYhWId'

这会返回用户的u_id,等等。但我想返回用户的用户名,而不是他们的 u_id。所以基本上,在那个 SELECT 语句中,我也想运行:

SELECT username FROM users WHERE u_id = 1

我可以为此使用两个查询,但我试图减少我的应用程序运行的查询,我知道有一种方法可以将它组合成一个查询,但我只是不知道:

有人知道答案吗?谢谢!

【问题讨论】:

    标签: sql select join


    【解决方案1】:

    你需要加入表格

    SELECT i.s_id, i.u_id,u.username, i.name, i.filename, i.filesize 
    FROM images i 
    INNER JOIN users u 
    on u.u_id = i.u_id 
    WHERE i.name = 'fYhWId'
    

    【讨论】:

      【解决方案2】:
      SELECT username FROM users WHERE u_id = (SELECT TOP 1 u_id FROM images WHERE name = 'fYhWId')
      

      SELECT username FROM users WHERE u_id IN (SELECT u_id FROM images WHERE name = 'fYhWId')
      

      SELECT username,  s_id, images.u_id, name, filename, filesize 
      FROM images 
      INNER JOIN users on images.u_id = users.u_id
      WHERE name = 'fYhWId'
      

      【讨论】:

      • 谢谢,你的最容易理解 :)
      猜你喜欢
      • 2015-08-30
      • 1970-01-01
      • 2012-01-26
      • 2021-01-05
      • 1970-01-01
      • 2011-06-27
      • 2012-05-19
      • 2011-08-22
      • 2010-11-24
      相关资源
      最近更新 更多