So I have the following row of my table1 table:
| name | last_name | activated | |
|---|---|---|---|
| [email protected] | john | connor | 1 |
Which I can get using:
select email, name, last_name, activated from table1
where email = [email protected]
limit 1;
And then I have the other row of of my table2:
| status | end_period | qtd |
|---|---|---|
| 1 | 1828232 | 20 |
Which I can get by using:
select status, end_period, qtd from table2
where email = [email protected]
limit 1;
Is there any way I can get the results into one line? Like this:
| name | last_name | activated | status | end_period | qtd | |
|---|---|---|---|---|---|---|
| [email protected] | john | connor | 1 | 1 | 1828232 | 20 |
Ps: Both tables have an 'email' column, which is what I use to link the the row of one to another.
CodePudding user response:
What you are looking for is a table join, in this case an INNER JOIN between table1 and table2 where the email column matches.
SELECT table1.email, table1.name, table1.last_name, table1.activated, table2.status, table2.end_period, table2.qtd
FROM `table1` AS table1
INNER JOIN `table2` AS table2
ON table1.email = table2.email
WHERE table1.email = '[email protected]';
This results in your expected output:
| name | last_name | activated | status | end_period | qtd | |
|---|---|---|---|---|---|---|
| [email protected] | john | connor | 1 | 1 | 1828232 | 20 |
