假设我们有两个表 users
和 products
表 users
有一个 accountBalance 列
表 users
架构:
userId accountBalance .........
1 500 .........
2 45000 .........
3 4238827 .........
. . .........
. . .........
. . .........
表
products
有一个价格列表
products
架构:productId price .........
1 40000 .........
2 55000 .........
3 90000 .........
. . .........
. . .........
. . .........
这些表没有任何关系,因此我无法通过公共(public)键加入它们。我想知道的是找出每个用户可以购买的产品并将其格式化为以下预期结果:
expected result
是:userId productIdsUserAffordToBuy
1 NUll
2 1*2
3 1*2*3
. .
. .
. .
最佳答案
使用 GROUP_CONCAT()
在单个列中创建一个列表并根据条件 accountBalance >= price
加入,您实际上可以执行 LEFT JOIN
(必须为买不起任何东西的用户返回 NULL
,而不是省略该行):
SELECT
userId,
GROUP_CONCAT(productId) AS productIdUserAffordToBuy
FROM
users
LEFT JOIN products ON users.accountBalance >= products.price
GROUP BY userId
关于mysql - 查询两个没有任何关系的表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11962976/