gpt4 book ai didi

php - 从3个表中选择数据,其中一列数据相同,另一列数据不同

转载 作者:太空宇宙 更新时间:2023-11-03 12:36:13 25 4
gpt4 key购买 nike

我有 3 个表:

tb_a                tb_b             tb_c
============== ============== ==============
|id|doc1|urla| |id|doc2|urlb| |id|doc3| sum|
============== ============== ==============
| 1| c1 |url1| | 1| c2 |urla| | 1| c2 |sum1|
| 2| c3 |url3| | 2| c4 |urlb| | 2| c3 |sum3|
| 3| c2 |url2| | 3| c6 |urlc| | 3| c4 |sum4|
============== ============== | 4| c6 |sum6|
==============

首先,我想检查 tb_atb_b。如果doc1doc2中的数据相同,我就使用tb_a中的数据doc1。这是第一个查询:

SELECT 
a.doc1
FROM
tb_a a
LEFT JOIN
tb_b b
ON a.doc1 = b.doc2
WHERE
b.doc2 IS NULL

然后 left 加入 tb_c 得到 sum。我可以在一个查询中进行这些处理吗?如何?谢谢:)

来自示例,所以结果必须是:

c3 url3 sum3 
c2 url2 sum1
c4 urlb sum4
c6 urlc sum6

最佳答案

您可以使用 LEFT JOINCOALESCE 连接所有表。

SELECT  a.doc3 DOCValue, 
COALESCE(b.urla, c.urlb) AS URLValue,
a.`SUm` AS SUMValue
FROM tb_c a
LEFT JOIN tb_a b
ON a.doc3 = b.doc1
LEFT JOIN tb_b c
ON a.doc3 = c.doc2

SQLFiddle Demo

关于php - 从3个表中选择数据,其中一列数据相同,另一列数据不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12998109/

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