UNION SELECT after LEFT JOIN and JOIN
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty{ margin-bottom:0;
}
up vote
0
down vote
favorite
SELECT DISTINCT re.*
FROM `reports` r
LEFT JOIN `users` u
ON u.`id_rep` = r.`id`
JOIN `customers` c
ON u.`id` = r.`uid`
WHERE r.`uid` = '1' and r.`name` LIKE 'urgent'
ORDER BY r.date DESC
Without making any modifications prior to the WHERE clause, would it be possible to use UNION (or a better approach) after the LIKE statement in order to SELECT from a fourth table called workers and ORDER the results BY r.date
DESC?
mysql
New contributor
add a comment |
up vote
0
down vote
favorite
SELECT DISTINCT re.*
FROM `reports` r
LEFT JOIN `users` u
ON u.`id_rep` = r.`id`
JOIN `customers` c
ON u.`id` = r.`uid`
WHERE r.`uid` = '1' and r.`name` LIKE 'urgent'
ORDER BY r.date DESC
Without making any modifications prior to the WHERE clause, would it be possible to use UNION (or a better approach) after the LIKE statement in order to SELECT from a fourth table called workers and ORDER the results BY r.date
DESC?
mysql
New contributor
I don't understand your EDIT. Please make a stab at the query; maybe it will be clearer then.
– Rick James
2 days ago
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
SELECT DISTINCT re.*
FROM `reports` r
LEFT JOIN `users` u
ON u.`id_rep` = r.`id`
JOIN `customers` c
ON u.`id` = r.`uid`
WHERE r.`uid` = '1' and r.`name` LIKE 'urgent'
ORDER BY r.date DESC
Without making any modifications prior to the WHERE clause, would it be possible to use UNION (or a better approach) after the LIKE statement in order to SELECT from a fourth table called workers and ORDER the results BY r.date
DESC?
mysql
New contributor
SELECT DISTINCT re.*
FROM `reports` r
LEFT JOIN `users` u
ON u.`id_rep` = r.`id`
JOIN `customers` c
ON u.`id` = r.`uid`
WHERE r.`uid` = '1' and r.`name` LIKE 'urgent'
ORDER BY r.date DESC
Without making any modifications prior to the WHERE clause, would it be possible to use UNION (or a better approach) after the LIKE statement in order to SELECT from a fourth table called workers and ORDER the results BY r.date
DESC?
mysql
mysql
New contributor
New contributor
edited 6 hours ago
New contributor
asked 2 days ago
stackexchange
43
43
New contributor
New contributor
I don't understand your EDIT. Please make a stab at the query; maybe it will be clearer then.
– Rick James
2 days ago
add a comment |
I don't understand your EDIT. Please make a stab at the query; maybe it will be clearer then.
– Rick James
2 days ago
I don't understand your EDIT. Please make a stab at the query; maybe it will be clearer then.
– Rick James
2 days ago
I don't understand your EDIT. Please make a stab at the query; maybe it will be clearer then.
– Rick James
2 days ago
add a comment |
2 Answers
2
active
oldest
votes
up vote
1
down vote
Using Union and ORDER BY
:
Be explicit with results form first query:
(SELECT DISTINCT rep.name, rep.date as rdate
FROM `reports_new` rep
LEFT JOIN `repuser_new` ru
ON ru.`id_rep` = rep.`id`
JOIN `clients` c
ON c.`id` = rep.`id_client`
WHERE ru.`id_user` = '1' and rep.`name` LIKE 'urgent')
UNION
(SELECT username,rdate FROM users)
ORDER BY rdate DESC
I assumed the second table had a date column. Otherwise and explicit value could be used.
There's an example of that in the manual page
– danblack
2 days ago
1
Try a new question. You're adding an amount of complexity beyond the initial question and without a full example with sample output clarification by comment is getting increasingly likely to be wrong.
– danblack
2 days ago
add a comment |
up vote
1
down vote
If I understand the question correctly, yes. Each of the following is OK, though not necessarily efficient:
SELECT ...
FROM ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x
SELECT ...
FROM a
JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
SELECT ...
FROM a
LEFT JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
SELECT ...
FROM ( ( SELECT ... ) UNION ( SELECT ... ) ) AS a
JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
etc. (I may have added more parentheses than necessary.)
More UNION tips:
- Yes, the number of columns needs to be the same.
- The default column names come from the first
SELECT
. - If you have a constant string in a column of the first
SELECT
, that limits the length of the matching string of the otherSELECTs
. (Simply pad with blanks to 'fix' the problem.) - If appropriate, use
UNION ALL
do avoid the de-duping phase, thereby being faster thanUNION
, which is the same asUNION DISTINCT
.
@Rick the last 2 queries are equivalent. TheORDER BY
is applied to the whole result set in both of them: dbfiddle.uk/…
– ypercubeᵀᴹ
2 days ago
1
@ypercubeᵀᴹ - Geez, I'm only a decade out of step -- bugs.mysql.com/bug.php?id=27848 "fixed" that in 2008 (5.0.56, 5.1.23). Thanks for rattling my cage.
– Rick James
2 days ago
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
Using Union and ORDER BY
:
Be explicit with results form first query:
(SELECT DISTINCT rep.name, rep.date as rdate
FROM `reports_new` rep
LEFT JOIN `repuser_new` ru
ON ru.`id_rep` = rep.`id`
JOIN `clients` c
ON c.`id` = rep.`id_client`
WHERE ru.`id_user` = '1' and rep.`name` LIKE 'urgent')
UNION
(SELECT username,rdate FROM users)
ORDER BY rdate DESC
I assumed the second table had a date column. Otherwise and explicit value could be used.
There's an example of that in the manual page
– danblack
2 days ago
1
Try a new question. You're adding an amount of complexity beyond the initial question and without a full example with sample output clarification by comment is getting increasingly likely to be wrong.
– danblack
2 days ago
add a comment |
up vote
1
down vote
Using Union and ORDER BY
:
Be explicit with results form first query:
(SELECT DISTINCT rep.name, rep.date as rdate
FROM `reports_new` rep
LEFT JOIN `repuser_new` ru
ON ru.`id_rep` = rep.`id`
JOIN `clients` c
ON c.`id` = rep.`id_client`
WHERE ru.`id_user` = '1' and rep.`name` LIKE 'urgent')
UNION
(SELECT username,rdate FROM users)
ORDER BY rdate DESC
I assumed the second table had a date column. Otherwise and explicit value could be used.
There's an example of that in the manual page
– danblack
2 days ago
1
Try a new question. You're adding an amount of complexity beyond the initial question and without a full example with sample output clarification by comment is getting increasingly likely to be wrong.
– danblack
2 days ago
add a comment |
up vote
1
down vote
up vote
1
down vote
Using Union and ORDER BY
:
Be explicit with results form first query:
(SELECT DISTINCT rep.name, rep.date as rdate
FROM `reports_new` rep
LEFT JOIN `repuser_new` ru
ON ru.`id_rep` = rep.`id`
JOIN `clients` c
ON c.`id` = rep.`id_client`
WHERE ru.`id_user` = '1' and rep.`name` LIKE 'urgent')
UNION
(SELECT username,rdate FROM users)
ORDER BY rdate DESC
I assumed the second table had a date column. Otherwise and explicit value could be used.
Using Union and ORDER BY
:
Be explicit with results form first query:
(SELECT DISTINCT rep.name, rep.date as rdate
FROM `reports_new` rep
LEFT JOIN `repuser_new` ru
ON ru.`id_rep` = rep.`id`
JOIN `clients` c
ON c.`id` = rep.`id_client`
WHERE ru.`id_user` = '1' and rep.`name` LIKE 'urgent')
UNION
(SELECT username,rdate FROM users)
ORDER BY rdate DESC
I assumed the second table had a date column. Otherwise and explicit value could be used.
edited 2 days ago
answered 2 days ago
danblack
1,3961212
1,3961212
There's an example of that in the manual page
– danblack
2 days ago
1
Try a new question. You're adding an amount of complexity beyond the initial question and without a full example with sample output clarification by comment is getting increasingly likely to be wrong.
– danblack
2 days ago
add a comment |
There's an example of that in the manual page
– danblack
2 days ago
1
Try a new question. You're adding an amount of complexity beyond the initial question and without a full example with sample output clarification by comment is getting increasingly likely to be wrong.
– danblack
2 days ago
There's an example of that in the manual page
– danblack
2 days ago
There's an example of that in the manual page
– danblack
2 days ago
1
1
Try a new question. You're adding an amount of complexity beyond the initial question and without a full example with sample output clarification by comment is getting increasingly likely to be wrong.
– danblack
2 days ago
Try a new question. You're adding an amount of complexity beyond the initial question and without a full example with sample output clarification by comment is getting increasingly likely to be wrong.
– danblack
2 days ago
add a comment |
up vote
1
down vote
If I understand the question correctly, yes. Each of the following is OK, though not necessarily efficient:
SELECT ...
FROM ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x
SELECT ...
FROM a
JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
SELECT ...
FROM a
LEFT JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
SELECT ...
FROM ( ( SELECT ... ) UNION ( SELECT ... ) ) AS a
JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
etc. (I may have added more parentheses than necessary.)
More UNION tips:
- Yes, the number of columns needs to be the same.
- The default column names come from the first
SELECT
. - If you have a constant string in a column of the first
SELECT
, that limits the length of the matching string of the otherSELECTs
. (Simply pad with blanks to 'fix' the problem.) - If appropriate, use
UNION ALL
do avoid the de-duping phase, thereby being faster thanUNION
, which is the same asUNION DISTINCT
.
@Rick the last 2 queries are equivalent. TheORDER BY
is applied to the whole result set in both of them: dbfiddle.uk/…
– ypercubeᵀᴹ
2 days ago
1
@ypercubeᵀᴹ - Geez, I'm only a decade out of step -- bugs.mysql.com/bug.php?id=27848 "fixed" that in 2008 (5.0.56, 5.1.23). Thanks for rattling my cage.
– Rick James
2 days ago
add a comment |
up vote
1
down vote
If I understand the question correctly, yes. Each of the following is OK, though not necessarily efficient:
SELECT ...
FROM ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x
SELECT ...
FROM a
JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
SELECT ...
FROM a
LEFT JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
SELECT ...
FROM ( ( SELECT ... ) UNION ( SELECT ... ) ) AS a
JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
etc. (I may have added more parentheses than necessary.)
More UNION tips:
- Yes, the number of columns needs to be the same.
- The default column names come from the first
SELECT
. - If you have a constant string in a column of the first
SELECT
, that limits the length of the matching string of the otherSELECTs
. (Simply pad with blanks to 'fix' the problem.) - If appropriate, use
UNION ALL
do avoid the de-duping phase, thereby being faster thanUNION
, which is the same asUNION DISTINCT
.
@Rick the last 2 queries are equivalent. TheORDER BY
is applied to the whole result set in both of them: dbfiddle.uk/…
– ypercubeᵀᴹ
2 days ago
1
@ypercubeᵀᴹ - Geez, I'm only a decade out of step -- bugs.mysql.com/bug.php?id=27848 "fixed" that in 2008 (5.0.56, 5.1.23). Thanks for rattling my cage.
– Rick James
2 days ago
add a comment |
up vote
1
down vote
up vote
1
down vote
If I understand the question correctly, yes. Each of the following is OK, though not necessarily efficient:
SELECT ...
FROM ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x
SELECT ...
FROM a
JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
SELECT ...
FROM a
LEFT JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
SELECT ...
FROM ( ( SELECT ... ) UNION ( SELECT ... ) ) AS a
JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
etc. (I may have added more parentheses than necessary.)
More UNION tips:
- Yes, the number of columns needs to be the same.
- The default column names come from the first
SELECT
. - If you have a constant string in a column of the first
SELECT
, that limits the length of the matching string of the otherSELECTs
. (Simply pad with blanks to 'fix' the problem.) - If appropriate, use
UNION ALL
do avoid the de-duping phase, thereby being faster thanUNION
, which is the same asUNION DISTINCT
.
If I understand the question correctly, yes. Each of the following is OK, though not necessarily efficient:
SELECT ...
FROM ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x
SELECT ...
FROM a
JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
SELECT ...
FROM a
LEFT JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
SELECT ...
FROM ( ( SELECT ... ) UNION ( SELECT ... ) ) AS a
JOIN ( ( SELECT ... ) UNION ( SELECT ... ) ) AS x ON ...
etc. (I may have added more parentheses than necessary.)
More UNION tips:
- Yes, the number of columns needs to be the same.
- The default column names come from the first
SELECT
. - If you have a constant string in a column of the first
SELECT
, that limits the length of the matching string of the otherSELECTs
. (Simply pad with blanks to 'fix' the problem.) - If appropriate, use
UNION ALL
do avoid the de-duping phase, thereby being faster thanUNION
, which is the same asUNION DISTINCT
.
edited 2 days ago
answered 2 days ago
Rick James
39.7k22256
39.7k22256
@Rick the last 2 queries are equivalent. TheORDER BY
is applied to the whole result set in both of them: dbfiddle.uk/…
– ypercubeᵀᴹ
2 days ago
1
@ypercubeᵀᴹ - Geez, I'm only a decade out of step -- bugs.mysql.com/bug.php?id=27848 "fixed" that in 2008 (5.0.56, 5.1.23). Thanks for rattling my cage.
– Rick James
2 days ago
add a comment |
@Rick the last 2 queries are equivalent. TheORDER BY
is applied to the whole result set in both of them: dbfiddle.uk/…
– ypercubeᵀᴹ
2 days ago
1
@ypercubeᵀᴹ - Geez, I'm only a decade out of step -- bugs.mysql.com/bug.php?id=27848 "fixed" that in 2008 (5.0.56, 5.1.23). Thanks for rattling my cage.
– Rick James
2 days ago
@Rick the last 2 queries are equivalent. The
ORDER BY
is applied to the whole result set in both of them: dbfiddle.uk/…– ypercubeᵀᴹ
2 days ago
@Rick the last 2 queries are equivalent. The
ORDER BY
is applied to the whole result set in both of them: dbfiddle.uk/…– ypercubeᵀᴹ
2 days ago
1
1
@ypercubeᵀᴹ - Geez, I'm only a decade out of step -- bugs.mysql.com/bug.php?id=27848 "fixed" that in 2008 (5.0.56, 5.1.23). Thanks for rattling my cage.
– Rick James
2 days ago
@ypercubeᵀᴹ - Geez, I'm only a decade out of step -- bugs.mysql.com/bug.php?id=27848 "fixed" that in 2008 (5.0.56, 5.1.23). Thanks for rattling my cage.
– Rick James
2 days ago
add a comment |
stackexchange is a new contributor. Be nice, and check out our Code of Conduct.
stackexchange is a new contributor. Be nice, and check out our Code of Conduct.
stackexchange is a new contributor. Be nice, and check out our Code of Conduct.
stackexchange is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f223394%2funion-select-after-left-join-and-join%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
I don't understand your EDIT. Please make a stab at the query; maybe it will be clearer then.
– Rick James
2 days ago