【问题标题】:How to get result from 2 mysql tables? [closed]如何从 2 个 mysql 表中获取结果? [关闭]
【发布时间】:2014-02-03 18:55:18
【问题描述】:

我想从 2 个表 'altitle' 和 'scroll100' 中获取结果,其中 live = 1 delete = 0 和 categori = 1 或 9 或 30。我实际上只能从一张表中获取结果,有人可以帮我吗?

$results = $pdo->query('SELECT * FROM  `altitle` WHERE  `live` = 1 AND `delete` = 0 AND `kategori` = 1 ORDER BY  `id` DESC ')->fetchAll(PDO::FETCH_ASSOC);

【问题讨论】:

  • 两个表的架构是什么?它们之间的联系是什么?
  • 架构相同,它们在同一个数据库中,只是不同的表。
  • 是完全相关的表格,例如通过外键?如果他们是两个完全不同的表,你需要两个查询,否则一个简单的 JOIN 应该做......
  • Marc B 表具有相同的结构,只是在添加文本时对 php 的字符限制不同。我想从表 altitle 和 scroll100 中显示突发新闻和最新消息,其中突发新闻的类别 id 为 1,最新新闻的类别 id 为 9,而在 scroll100 中,最新新闻的类别 id 为 30。我知道奇怪的架构,但它的电视显示股票行情在电视上:/

标签: php mysql sql pdo


【解决方案1】:

关于你的评论,你应该把你的两个表放在 FROM 子句中:

$results = $pdo->query('SELECT * FROM  `altitle` a, `scroll100` s 
                        WHERE  a.`live` = 1
                        AND a.`delete` = 0 
                        AND (a.`kategori` = 1
                        OR a.`kategori` = 9
                        OR a.`kategori` = 30)
                        AND s.`live` = 1
                        AND s.`delete` = 0 
                        AND (s.`kategori` = 1
                        OR s.`kategori` = 9
                        OR s.`kategori` = 30)
                        ORDER BY  a.`id` DESC ')->fetchAll(PDO::FETCH_ASSOC);

这是一个奇怪的架构,你知道的。

【讨论】:

  • 很高兴感谢您的回答,但我想更多 a.kategori = 1 我可以添加 OR a.kategori = 9 吗?我的意思是 categori = 1 OR 9 ?
  • 当然可以。我刚刚编辑了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
  • 2017-04-25
  • 1970-01-01
  • 2019-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多