我有这个查询来调用两个表的信息。mysql从两个表中查询两行
DB::get("SELECT friends. * , (SELECT `login` FROM `users` WHERE `users`.`id` = friends.`user_id`) AS `login` FROM `friends` WHERE `id_user`='" . $this->user['id'] . "' ORDER BY `id` DESC LIMIT ")
因此,如果用户是在朋友列表显示用户名,我想获得用户名和头像。阿凡达行是avatar
。 我尝试这个。
DB::get("SELECT friends. * , (SELECT `login`, `*avatar*` FROM `users` WHERE `users`.`id` = friends.`user_id`) AS `login` FROM `friends` WHERE `id_user`='" . $this->user['id'] . "' ORDER BY `id` DESC LIMIT ")
而且给我的错误
SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)
哪里是错误的?
在此可能的[** SQLSTATE \ [21000 \]重复中查看答案:基数违规:1241操作数应包含1列。 SQL查询**](https://stackoverflow.com/questions/38326246/sqlstate21000-cardinality-violation-1241-operand-should-contain-1-columns)解释说,你不能有超过1列返回并使用改为加入。 – Nope
当你选择多个列并尝试分配一个列名称时,它永远不会工作,应该是这样,因为它没有意义,认为它...和MySQL引擎想到它,并已为此添加了一个例外,它会抛出该错误。现在我们该如何克服,因为您可以看到一些建议使用JOIN的解答,所以请尝试使用JOIN,并让我们知道是否存在问题。 –
@AbhikChakraborty帮我看看我的例子。 – Martinovska