同时从2个表中获取数据

时间:2019-11-11 12:52:04

标签: php mysql codeigniter

对于一个项目,我需要同时从2个不同的表中提取数据。但是我做不到。

例如,有2个表。

表1和表2

我想在同一数组中获取状态为1的表1和表2中的数据。

我该怎么做?

我尝试了诸如左连接,右连接,内连接之类的操作。但这从未发生。因此,如果有一种方法可以通过单个查询而不使用join来获取它们,那就太好了。

table 1 : people
+-------+-----------+-----------+-------------------+
|   id  |   name    |   status  |       phone       |
+-------+-----------+-----------+-------------------+
|   1   |   John    |       1   |   214-444-1234    |
|   2   |   Mary    |       0   |   555-111-1234    |
|   3   |   Jeff    |       0   |   214-222-1234    |
|   4   |   Bill    |       1   |   817-333-1234    |
|   5   |   Bob     |       1   |   214-555-1234    |
+-------+-----------+-----------+-------------------+
table 2 : dog
+-------+-----------+-----------+-------------------+
|   id  |   name    |   status  |       ids         |
+-------+-----------+-----------+-------------------+
|   1   |   Holly   |       1   |   223-444-1234    |
|   2   |   Papa    |       0   |   245-111-1234    |
|   3   |   Kozz    |       0   |   234-222-1234    |
|   4   |   Japs    |       1   |   856-333-1234    |
|   5   |   Moly    |       1   |   256-555-1234    |
+-------+-----------+-----------+-------------------+

我想得到状态= 1个人和狗成一排。

多个代码

1- SELECT * FROM people WHERE people.status = 1
2- SELECT * FROM dog WHERE dog.status = 1

我想要这个结果:

$all_data = array(
            '0' => array(
                'id' => 1,
                'name' => 'John',
                'status' => 1,
                'phone' => '214-444-1234',
                ),
            '2' => array(
                'id' => 4,
                'name' => 'Bill',
                'status' => 1,
                'phone' => '817-333-1234',
            ),
            '3' => array(
                'id' => 5,
                'name' => 'Bob',
                'status' => 1,
                'phone' => '214-555-1234',
            ),
            '4' => array(
                'id' => 1,
                'name' => 'Holly',
                'status' => 1,
                'ids' => '223-444-1234',
            ),
            '5' => array(
                'id' => 4,
                'name' => 'Japs',
                'status' => 1,
                'ids' => '856-333-1234',
            ),
            '6' => array(
                'id' => 5,
                'name' => 'Moly',
                'status' => 1,
                'ids' => '256-555-1234',
            ),
            );

我该怎么做?

1 个答案:

答案 0 :(得分:2)

select id, name, status, phone from people where status = 1
UNION ALL
select id, name, status, phone from dog where status = 1