php - 如何获取两个或多个表中的同一列?

标签 php mysql sql

我有多个表,其中有一个名为“名称”的列。

我想获取“名称”列中的所有值。像这样:

$sql = "SELECT names FROM nx1, nx2, nx3";
        $result = $conn->query($sql);

        if ($result->num_rows > 0) {
          // output data

          while($row = $result->fetch_assoc()) {

          echo $row ["names"];

         }
        } else {
           echo "‌empty";
         }

但是我得到这个错误:

 Notice
: Trying to get property of non-object in

对不起,我是新手这个奇怪的代码:(

最佳答案

您不能像那样从多个表中选择一列。在您的情况下,您想使用 UNION 或 UNION ALL(取决于您试图获得的结果)。 See the MySQL documentation for UNION

在您的情况下,查询应如下所示:

SELECT `names`
FROM   `nx1` 
UNION 
SELECT `names` 
FROM   `nx2` 
UNION 
SELECT `names` 
FROM   `nx3`

SELECT `names` 
FROM   `nx1` 
UNION ALL
SELECT `names` 
FROM   `nx2` 
UNION ALL
SELECT `names` 
FROM   `nx3`

带有 UNION ALL 的版本将保留重复的行,而带有 UNION 的版本将删除它们,就好像您使用了 DISTINCT 关键字一样。

关于php - 如何获取两个或多个表中的同一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57712479/

相关文章:

php - 从表格中生成包含月、日、年的图表

java - SQLiteDatabase.rawQuery 不使用准备好的语句返回正确的结果

SQL:如何显示仅30天的记录

php - 在 PHP 中将变量名转换为数组

使用 python 将 MySQL 输出为 JSON

php - 如何连接到另一台服务器上的数据库?

mysql更新一些记录的逻辑

php - 选择并计算连接表

php - 用于搜索建议程序的简单 PHP/Ajax - 仅显示完整输入的数据库结果

php - 如何将变量绑定(bind)到闭包?