我有多个表,其中有一个名为“名称”的列。
我想获取“名称”列中的所有值。像这样:
$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/