我有这个查询来调用两个表中的信息。
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)
错在哪里?
最佳答案
首先你应该使用Prepared Statement其次,你不能写内联 View ,它有两列
SELECT friends. * , (SELECT `login`, `*avatar*` FROM ..
相反,您应该使用 JOIN
,这可能比当前方法更有效并且更具可读性。
关于php - mysql从两个表中查询两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46409680/