我创建了一个名为(insert)的数据库,它有两个表table1和table.2。
char
有3列table1
。
user, id, roll
有2列table2
。
我在两个表中插入了值。我想从两个表中检索所有值并在另一个php文件中显示它们,但我的查询不起作用。它显示错误。我该怎么办?这是我的代码
id, menu
答案 0 :(得分:2)
将查询更改为
$sql = "SELECT table1.user, table1.id FROM table1, table2 WHERE table1.id=table2.id";
答案 1 :(得分:2)
您的表需要唯一标识符(别名):
$sql = "SELECT t1.user, t1.id FROM table1 t1, table2 t2 WHERE t1.id=t2.id";
可能更好的是LEFT JOIN:
$sql = "SELECT t1.user, t1.id FROM table1 t1 LEFT JOIN table2 t2 on t1.id=t2.id";
答案 2 :(得分:1)
(编辑:前几句话不正确。在我的第一眼看到我看到你为一列指定了一个表,但错过了你没有为id
指定一个表。因为它们共享相同的值,选择一个表并指定它。你应该总是使用显式或隐式JOINS指定表。但是,首先要做的是第一个。)
我猜你的查询实际上有效,如果你测试它。查询没有任何内在错误(尽管我总是建议使用显式JOINS
)。
有一个很好的理由说明您提供的示例代码无效...
你错过了$result = mysqli_query($sql):
然后可以使用mysqli_fetch_array($result)
。
mysqli_fetch_array()
需要结果,而不是SQL字符串。
请注意,您应使用mysqli
而不是mysql
。