Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从一个表中获取所有数据,有时将该表与另一个表关联_Php_Mysql_Sql_Codeigniter - Fatal编程技术网

Php 从一个表中获取所有数据,有时将该表与另一个表关联

Php 从一个表中获取所有数据,有时将该表与另一个表关联,php,mysql,sql,codeigniter,Php,Mysql,Sql,Codeigniter,我的问题是:我可以这样做吗? 我尝试了很多东西,其中一些是: 我需要所有信息表单表A,有时我需要将此表与表B连接起来。我的问题是,当我连接两个表时,如果表A中的某个特定参数不在表B中,只需在特定参数为时给我记录,但我需要所有记录 表A |--------------------------------| | Table A | |-------------------|------------| | id_table_A | name |

我的问题是:我可以这样做吗? 我尝试了很多东西,其中一些是:

我需要所有信息表单表A,有时我需要将此表与表B连接起来。我的问题是,当我连接两个表时,如果表A中的某个特定参数不在表B中,只需在
特定参数为
时给我记录,但我需要所有记录

表A

|--------------------------------|
|           Table A              |
|-------------------|------------|
| id_table_A | name | id_table_B |
|------------|------|------------|
|   1        | Joe  |  1         |
|------------|------|------------|
|   2        | Ben  |            |
|------------|------|------------|
|   3        | Lya  |            |
|------------|------|------------|
|   4        | luis |  2         |
|------------|------|------------|
表B

|----------------------|
|      Table B         |
|----------------------|
| id_table_B | Elements|
|------------|---------|
|   1        |    Car  | 
|------------|---------|
|   2        |    Byke | 
|------------|---------|
|   3        |    Moto | 
|------------|---------|
我想在我的视图中显示以下内容:

|------------|------|------------|
| id_table_A | name | Elements   |
|------------|------|------------|
|   1        | Joe  |  Car       |
|------------|------|------------|
|   2        | Ben  |            |
|------------|------|------------|
|   3        | Lya  |            |
|------------|------|------------|
|   4        | luis |  Byke      |
|------------|------|------------|
我的型号 在我的模型中,这是我尝试的:

"SELECT * FROM table_A, table_B where table_A.id_table_B = table_B.id_table_B"
但此查询仅显示数据1和4。 这能不能做到?
提前感谢。

您可以使用left join

SELECT * 
FROM table_A
left join table_B on table_A.id_table_B = table_B.id_table_B
当表之间的键可能不总是匹配时,使用左联接。在这种情况下,左连接在可能的情况下检索正确的匹配,如果不可能,则值变为
NULL


您需要一个显式的
左联接
,而不是简单列出这样的表时使用的隐式
内部联接

当然,使用
LEFT JOIN
时,如果您从表A
中选择*并只是
LEFT JOIN
表B?@Giedrius执行
SELECT*FROM表A LEFT JOIN表B
时出现语法错误
我的问题是:我可以这样做吗?
是的。回答很好,我希望您能解释更多原因,或者至少链接到文档,而不是“只做这个>>代码”paste@GrumpyCrouton答案更新为一个简单但我希望清楚的解释