gpt4 book ai didi

mysql - 在 MySQL 查询中左连接还是右连接?

转载 作者:行者123 更新时间:2023-11-29 04:03:39 24 4
gpt4 key购买 nike

table1: node
fields: nid, ,title,type,created

查询1:

mysql_query(SELECT nid,title, type,created FROM `node` where type="provider"  ORDER BY created DESC LIMIT 0 , 22)



table2: votingapi_vote
fields: content_id, value=1 or value=0, value_type=option

查询2:

SELECT content_id,
SUM(CASE WHEN value=1 THEN 1
WHEN value=0 THEN -1
ELSE 0
END) AS ContentSum
FROM votingapi_vote
WHERE value_type = 'option'
GROUP BY content_id
ORDER BY ContentSum DESC

content_id 值等于nid 值,但在表1中,nid可能与表不一一对应2. 例如:

table 1     table2
nid content_id

1 1
2 3
3

但是content_id与表1中的nid是一一对应的。

现在,我想获得一个标题列表。其中 unmber 是 22降序是根据ContentSum创建的。有没有办法得到这个?我应该使用 left join 吗?我不知道如何将两个查询变成一个查询?

a hard query to write in mysql to me?

改写:

表一结构{node}:

nid        type             title                 created

10 provider test one 1298107010
11 provider test two 1298107555
12 provider example one 1300524695
13 provider example two 1298081391
14 provider example three 1298082340
15 company example four 1298083519
16.... company example five 1298083559

表二结构{votingapi_vote}:

content_id      value    value_type

10 1 option
10 0 option
11 1 option
12 0 option
15 3 percent
15 2 percent
16..... 0 option

我想要:

得到22个标题列表

...
test one
test two
example one
example two
...

1、nid的值等于表2中content_id的值。

标题列表队列顺序是:

1、首先根据表2的content_id降序tile列表(content_id降序使用“对于每个content_id,value=1的行数减去value=0的行数”)

2,因为table2可能只有不到22条记录,value=1的行数减去value=0的行数,结果是一样的。什么时候出现这种情况。使用表 1 中的 created 字段降序 tile

最佳答案

<table1> left join <table2>

意味着元组不必在 table2 中具有匹配元素,但将包含 table1 中的所有元素。

<table1> right join <table2>

意味着元组不必在 table1 中具有匹配元素,但将包含 table2 中的所有元素。

关于mysql - 在 MySQL 查询中左连接还是右连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6079321/

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