【问题标题】:To find realted data of table1 in table2在表2中查找表1的相关数据
【发布时间】:2013-03-11 04:44:16
【问题描述】:

Table1 有一些数据作为类别

Table2 有一些与 table1 类别相关的数据

两个表之间的关系是table1的cat_id和table2的cat_ids。

我想要的是什么? 我需要显示 table1 和 table2 中的所有字段我只需要相关内容,即 id 存在于 cat_id(table1) 和 cat_ids(table2)

我正在使用像这样的查询select c.* ,cc.* from news_categories cc, news_content c where cc.cat_id = c.cat_ids group by cc.cat_id 这仅提供来自 table1 和 table2 的公共数据.. 我需要来自 table1 的公共数据和所有类别 谁能帮我?

【问题讨论】:

  • 仅供参考,我假设 realtion 是关系*

标签: php mysql


【解决方案1】:

您应该改用JOIN

SELECT t1.*, GROUP_CONCAT(t2.content_id)
FROM table1 t1
LEFT JOIN table2 t2
    ON t2.cat_ids = t1.cat_id
GROUP BY t1.cat_id

【讨论】:

  • 我怎样才能得到那些 group_contact() id 的数据
  • @user1929491 您能否具体说明您要获取哪一列?
  • 我的意思是所有列与id相关的所有列都由table2的Group_contact()分组
  • 是的,我明白了.. 感谢您提供这个有用的查询。
  • 是否可以通过不使用 group_concat() 来更改此查询
【解决方案2】:

这适用于两个表的所有字段...

SELECT Table1.*, Table2.*
FROM Table1, Table2
WHERE Table1.cat_id = Table2.cat_ids

这适用于 Table1 的所有字段和 Table2 的 Content 字段...

SELECT Table1.*, Table2.full_content
FROM Table1, Table2
WHERE Table1.cat_id = Table2.cat_ids

【讨论】:

    【解决方案3】:

    你需要使用外连接,这种情况下左连接..看看Documentation

    【讨论】:

      猜你喜欢
      • 2013-04-19
      • 2018-05-19
      • 2022-01-08
      • 1970-01-01
      • 2017-04-09
      • 2015-05-23
      • 1970-01-01
      • 2016-09-15
      • 2016-09-01
      相关资源
      最近更新 更多