我正在尝试从PHP数据库中获取每个用户的信息和用户的号码。因此,问题是有时用户添加的数字超过1。这是表和SQL:
users table
id user_name email
1 John john@gmail.com
2 David david@gmail.com
numbers table
id user_id number number_prefix
1 1 3144425 123
2 1 5484248 123
3 1 3144425 325
4 2 5991599 123
如您所见,第一位用户有3个号码。
这是我的sql:
SELECT
u.*,
n.*
FROM
users u,
numbers n
WHERE
u.id = n.user_id AND
u.id = 1
当然它会起作用。我想为每个表设置不同的LIMIT。我的意思是为table:users设置LIMIT 1,为table:numbers
设置LIMIT 3为此,我使用了另一个sql,如下所示:
SELECT *,
(
SELECT
number
FROM
menu
WHERE
user_id = 1
ORDER BY id
LIMIT 0,3) AS number
FROM users
WHERE id = 1
ORDER BY id
LIMIT 0,1
如你所知,子查询不能返回超过1行也许,IT应该更好使用SQL JOIN和GROUP BY ...我试过,但是没有任何好的结果......
答案 0 :(得分:1)
在联接中使用子查询,然后它可以返回多行。
SELECT *
FROM (SELECT number
FROM menu
WHERE user_id = 1
ORDER BY id
LIMIT 3) AS number,
JOIN (SELECT *
FROM users
WHERE id = 1
LIMIT 1) AS users
答案 1 :(得分:0)
SELECT *
FROM (SELECT * FROM users LIMIT 1) AS us , numbers ns
WHERE us.id = '1' LIMIT 3;