我有這個查詢來調用兩個表的信息。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