【问题标题】:mysql join with varchar fields [closed]mysql加入varchar字段[关闭]
【发布时间】:2013-01-24 00:34:30
【问题描述】:

我需要加入 2 张桌子

a) 表_a

id        ref_no                        name
---------------------------------------------------
1       HRTU/00000001/2013             ram
2       HRTU/00000002/2013             sam

b) 表_b

       ref_no                        desg
---------------------------------------------------
    HRTU/00000001/2013               project manager
    HRTU/00000002/2013               developer

这 2 个表将通过它们的 ref_no 连接。并会给我如下输出

c) 输出表

 ref_no                              name                             desg
----------------------------------------------------------------------------------
    HRTU/00000001/2013               ram                       project manager
    HRTU/00000002/2013               sam                         developer

【问题讨论】:

  • 请发布您自己尝试过的内容。
  • 如果您知道什么是联接,那就太琐碎了。
  • 您必须提出具体问题并展示您在堆栈溢出方面所做的工作。
  • @SalmanA 是的,我知道。请自己尝试并给我一个查询,它给出了我要求的 100% 正确结果。谢谢。
  • 你先 100% 尝试如何,然后展示你的尝试?

标签: php mysql sql join


【解决方案1】:
SELECT a.*, b.*  -- SELECT columns you want
FROM    table1 a
        INNER JOIN table2 b
            ON a.ref_no = b.ref_no

要全面了解联接,请访问以下链接:

【讨论】:

  • 它不起作用。我试过了。将返回超过 2 个结果。 :(
  • @ripa 那么为什么它在小提琴上工作?检查链接:D
  • @ripa 表格设计存在问题,因为您有长字符串“ref_no”要连接在一起。您应该使用外键/主键作为整数加入
  • @RajuGujarati 是的,它可能是数据库设计问题。但这是项目的要求。
  • @ripa 你能显示结果吗?添加 DISTINCT 怎么样,例如SELECT DISTINCT a.*, ....
【解决方案2】:
SELECT a.ref_no AS ref_no, a.valp AS name, b.desg AS desg
FROM table1 a
INNER JOIN table2 b ON a.ref_no = b.ref_no

使用 SELECT 中的“AS”,您可以为列命名

【讨论】:

  • 对不起,伙计。不符合我的要求:(
猜你喜欢
  • 2012-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
  • 1970-01-01
  • 1970-01-01
  • 2013-02-02
  • 2019-05-21
相关资源
最近更新 更多