SQL Query从子表中检索引用的用户名

时间:2017-09-30 10:41:40

标签: mysql

我正在使用MySQL。我有两个表,fb_datafb_not

第一个表的列是:

  • ID
  • 用户名
  • USEREMAIL
  • 为userpass
  • fbappid
  • fbapplink
  • fbuserid

第二个表的列是:

  • fk_id
  • liked_one
  • liker_one
  

liked_oneliker_one列引用了 fb_data 表的fbuserid。只是他们是外键。我想要做的是,获取liker_one表中fb_not列的名称。我想从username表的fb_data列中获取名称。

Check this Image

  

此演示显示查询应如何工作。我想从fb_data表中获取每个liker的用户名。

3 个答案:

答案 0 :(得分:2)

只需加入桌子两次:<​​/ p>

SELECT d1.username as [Liker], d2.username as [Liked]
  FROM fb_not f
 INNER JOIN fb_data d1
    ON d1.fbuserid = f.liker_one
 INNER JOIN fb_data d2
    ON d2.fbuserid = f.liked_one

答案 1 :(得分:2)

您可以inner joining fb_notfb_data两次获得所需的输出结果;一次用于liker_one,一次用于liked_one,如下所示。

SELECT DISTINCT CONCAT (
        t2.username
        ,'('
        ,t2.fbuserid
        ,') is the liker who liked '
        ,t3.username
        ,'('
        ,t3.fbuserid
        ,') post'
        ) AS Col1
FROM fb_not t1
INNER JOIN fb_data t2 ON t1.liker_one = t2.fbuserid
INNER JOIN fb_data t3 ON t1.liked_one = t3.fbuserid

distinct用于删除重复的行。

<强>结果:

Col1
----------------------------------------------------
nadeem(1234) is the liker who liked nadee(4321) post

您可以查看演示 here

答案 2 :(得分:0)

这是您要求的答案。谢谢,如果我能提供更多帮助,请告诉我。

SELECT
   username 
FROM
   fb_data fdata 
   JOIN
      fb_not datan 
      ON fdata.fbuserid = datan.liker_one