gpt4 book ai didi

mysql - 如何组合三个不同的查询

转载 作者:行者123 更新时间:2023-11-29 03:57:16 27 4
gpt4 key购买 nike

我有三个问题:

SELECT EVENT_TITLE, ORIG_START_DT FROM EVENT_MAIN WHERE USERID='4' AND EVENT_STATUS='P'
SELECT GREET_TITLE, BROADCAST_SCH_DT FROM GREET_MAIN WHERE USERID='4' AND GREET_STATUS='P'
SELECT POLL_TITLE,CREATE_DTTM FROM POLL_MAIN WHERE USERID='4' AND POLL_STATUS='P'

如何将这三个查询合并为一个查询以获得这样的结果。

对于相同状态的每个 USERID,表格可能包含不止一行。

EVENT_TITLE | ORIG_START_DT | GREET_TITLE | BROADCAST_SCH_DT | POLL_TITLE | CREATE_DTTM

最佳答案

像这样使用 UNION(隐式不同)或 UNION ALL:

SELECT 
EVENT_TITLE "Title",
ORIG_START_DT "DT"
FROM EVENT_MAIN WHERE USERID='4' AND EVENT_STATUS = 'P'
UNION ALL
SELECT
GREET_TITLE,
BROADCAST_SCH_DT
FROM GREET_MAIN WHERE USERID='4' AND GREET_STATUS = 'P'
UNION ALL
SELECT
POLL_TITLE,
CREATE_DTTM
FROM POLL_MAIN WHERE USERID='4' AND POLL_STATUS = 'P';

更新

如果你想从这三个查询中获取表单中的数据:

EVENT_TITLE | ORIG_START_DT | GREET_TITLE | BROADCAST_SCH_DT | POLL_TITLE | CREATE_DTTM

你可以这样做:

SELECT  
EVENT_TITLE ,
ORIG_START_DT ,
GREET_TITLE,
BROADCAST_SCH_DT,
POLL_TITLE,
CREATE_DTTM
FROM
(
SELECT *
FROM EVENT_MAIN
WHERE USERID='4' AND EVENT_STATUS = 'P'
) t1
INNER JOIN
(
SELECT *
FROM GREET_MAIN
WHERE USERID='4' AND GREET_STATUS = 'P'
) t2
INNER JOIN
(
SELECT *
FROM POLL_MAIN
WHERE USERID='4' AND POLL_STATUS = 'P'
) t3

SQL Fiddle Demo

这会给你类似的东西:

| EVENT_TITLE | ORIG_START_DT | GREET_TITLE | BROADCAST_SCH_DT | POLL_TITLE | CREATE_DTTM |
-------------------------------------------------------------------------------------------
| Title4 | O44 | DTdd | O44 | ddsfTdd | O44 |
| Title4 | O33 | DTdd | O44 | ddsfTdd | O44 |
........

请注意: 据我所知,这个查询将交叉连接三个表,因为我没有指定 JOIN 条件,因为你没有确定你的问题。如果这三个表之间存在任何关系,请使用 ON 子句指定 JOIN 条件。

关于mysql - 如何组合三个不同的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13954134/

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