gpt4 book ai didi

Mysql从不同的表中添加列

转载 作者:行者123 更新时间:2023-11-29 02:59:57 25 4
gpt4 key购买 nike

我有两个表:

| USER |
| _id | - int id PK
| id | - String id
| name |

| SUBSCRIBE |
| user |
| subscribe |

我想提取这些数据:

| _id | id | name | subscribe

简单的例子

| USER |
| 1 | 10212551 | Mike
| 2 | 21022145 | Nick

| SUBSCRIBE |
| 1 | 2


get_info($user, $sub );

| EXPECTED RESULT |
| $user | id | name | 0 or 1 (false or true, if $sub has subscribed to $user)

我最好的尝试是使用 count():

SELECT u._id,u.id,u.name,u.email,u.country,count(s.subscribe) AS subscribe 
FROM user u,subscribe s
WHERE u._id='$user' AND s.subscribe='$user' AND s.user='$sub'

但这只有在订阅表中有任何记录时才有效。所以对于

get_info(2,1)

它会给出正确的结果,但对于:

get_info(1,2)

什么都没有:/

有人可以帮我解决这个问题吗?

最佳答案

使用 left join 返回用户,即使他没有订阅,并用例检查订阅

select u._id,u.id,u.name,u.email,u.country,
case when s.subscribe is not null then 1 else 0 end as subscribe
from user u
left join subscribe s on (u._id = s.user and s.subscribe ='$sub')
where u._id='$user'

Demo

关于Mysql从不同的表中添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25232764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com