我在这个查询中收到错误:
SELECT i.name, i.surname, (SELECT u.username FROM user u WHERE u.info_id IN (1,9,10,15,25,40,42,43,44)) as email FROM `userinfo` i WHERE i.id IN (1,9,10,15,25,40,42,43,44)
Run Code Online (Sandbox Code Playgroud)
错误:
基数违规:1242子查询返回超过1行
我知道这可以通过使用JOIN语句来解决,但我不知道如何解决这个问题.
为了澄清我的更多问题,我有两个表,user和userinfo:
用户
id info_id username
Run Code Online (Sandbox Code Playgroud)
用户信息
id name surname
Run Code Online (Sandbox Code Playgroud)
info_id行user与id有关userinfo,所以有这个格式的用户信息ID列表(1,4,7,8,9)我想要名字和姓氏(来自userinfo)和来自的user那个用户名与info_id匹配
Joh*_*Woo 10
您需要在相关子查询中指定两个表之间的关系,
SELECT i.name,
i.surname,
(
SELECT u.username
FROM user u
WHERE u.info_id = i.id) as email
FROM userinfo i
WHERE i.id IN (1,9,10,15,25,40,42,43,44)
Run Code Online (Sandbox Code Playgroud)
并通过使用JOIN(我更喜欢)
SELECT i.name,
i.surname,
u.username as Email
FROM userinfo i
INNER JOIN user u
ON u.info_id = i.id
WHERE i.id IN (1,9,10,15,25,40,42,43,44)
Run Code Online (Sandbox Code Playgroud)
要进一步了解联接,请访问以下链接:
| 归档时间: |
|
| 查看次数: |
13677 次 |
| 最近记录: |