Mysql 查询两个没有任何关系的表
假设我们有两个表Mysql 查询两个没有任何关系的表,mysql,sql,Mysql,Sql,假设我们有两个表users和products 表用户有一个accountBalance列 表用户模式: userId accountBalance ......... 1 500 ......... 2 45000 ......... 3 4238827 ......... . . ......... . . .........
users
和products
表用户
有一个accountBalance列
表用户
模式:
userId accountBalance .........
1 500 .........
2 45000 .........
3 4238827 .........
. . .........
. . .........
. . .........
productId price .........
1 40000 .........
2 55000 .........
3 90000 .........
. . .........
. . .........
. . .........
表产品
有一个价格列
表产品模式:
userId accountBalance .........
1 500 .........
2 45000 .........
3 4238827 .........
. . .........
. . .........
. . .........
productId price .........
1 40000 .........
2 55000 .........
3 90000 .........
. . .........
. . .........
. . .........
这些表没有任何关系,所以我不能用一个公共键连接它们。我想知道的是,找出每个用户可以购买哪些产品,并将其格式化为以下预期结果:
预期结果是:
userId productIdsUserAffordToBuy
1 NUll
2 1*2
3 1*2*3
. .
. .
. .
使用在单个列中创建列表并根据条件加入accountBalance>=price
,您实际上可以执行左加入
(对于负担不起任何费用的用户,必须返回NULL
,而不是忽略该行):
选择userid、accountbalance、group_concat(productid)作为productfendotobuy
来自用户的交叉连接产品
如果price交叉连接
没有任何关系或id
有点棘手
select userid,accountbalance,productid as productaffordtobuy
from users
cross join products
where price<=accountbalance
group by userid
选择userid、accountbalance、productid作为productfeventtobuy
来自用户
交叉连接产品
mysql在哪里支持交叉连接?它确实支持交叉连接。但是,我建议用户如果买不起任何东西,我会处理好。因此,在这种情况下,使用左连接更合适。应该问一个更好的问题-您提供的交叉连接是否受mysql支持-上次我阅读文档时支持有限-或者可能我在想一些ElseHnoaks Michael可以发挥魅力的东西