【问题标题】:Get single value using inner join使用内部连接获取单个值
【发布时间】:2014-11-17 05:47:03
【问题描述】:

我有两个表 calldetails 和 calltype

通话详情表

id calltype isactive
1   1       1
2   1       1
3   1       1

调用类型表

id name             isactive
1  mobile internet   1

预期结果

id name             isactive
1  mobile internet   1

但我得到了低于结果

id name             isactive
1  mobile internet   1
1  mobile internet   1
1  mobile internet   1

我用过下面的查询

SELECT ct.`name` , ct.`id`
FROM calltype AS ct
INNER JOIN calldetails AS cd ON cd.`isactive` =1
WHERE ct.`isactive` =1
AND ct.`id` = cd.`calltype`
LIMIT 0 , 30

如何使用内连接获取单个值。

【问题讨论】:

  • DISTINCT 可能是一种方法

标签: php mysql database inner-join


【解决方案1】:

试试DISTINCT

SELECT DISTINCT ct.`name` , ct.`id`
FROM calltype AS ct
INNER JOIN calldetails AS cd ON cd.`isactive` =1
WHERE ct.`isactive` =1
AND ct.`id` = cd.`calltype`
LIMIT 0 , 30

【讨论】:

    【解决方案2】:

    只需在 calldetails 中的选择上使用 distinct :

    SELECT ct.`name` , ct.`id`
    FROM calltype AS ct
    INNER JOIN (SELECT DISTINCT calltype, isactive FROM calldetails) cd ON cd.`isactive` =1
    WHERE ct.`isactive` =1
    AND ct.`id` = cd.`calltype`
    LIMIT 0 , 30
    

    【讨论】:

      【解决方案3】:

      试试

      SELECT ct.`name` , ct.`id`
      FROM calltype AS ct
      INNER JOIN calldetails AS cd ON cd.`isactive` = ct.`isactive`
      WHERE ct.`isactive` =1
      LIMIT 0 , 30
      

      这里是检查内部连接命令的链接: http://www.w3schools.com/sql/sql_join_inner.asp

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多