Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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 比较两个SQL表,如果它们在公共输出表1值和表2值中有ID,我希望始终输出表1值_Php_Sql - Fatal编程技术网

Php 比较两个SQL表,如果它们在公共输出表1值和表2值中有ID,我希望始终输出表1值

Php 比较两个SQL表,如果它们在公共输出表1值和表2值中有ID,我希望始终输出表1值,php,sql,Php,Sql,我正在比较两个SQL表(表1和表2),如果它们有一个共同的“ID”,我想同时打印出来。如果他们不共享“ID”,我只想打印出第一个表值。我进行了连接,但只能输出具有匹配值的数据。然后,我尝试选择*数据并将其放入数组中,然后用PHP对其进行过滤,但我遇到了困难 SELECT table1.value, table2.additionalinfo FROM table1 INNER JOIN table2 ON table1.ID=table2.ID 将其改为外部联接—这样您将始终引入第一个表—并且

我正在比较两个SQL表(表1和表2),如果它们有一个共同的“ID”,我想同时打印出来。如果他们不共享“ID”,我只想打印出第一个表值。我进行了连接,但只能输出具有匹配值的数据。然后,我尝试选择*数据并将其放入数组中,然后用PHP对其进行过滤,但我遇到了困难

SELECT table1.value, table2.additionalinfo
FROM table1
INNER JOIN table2
ON table1.ID=table2.ID

将其改为外部联接—这样您将始终引入第一个表—并且只要从第二个表中引入匹配的行(如果有):

SELECT table1.value, table2.additionalinfo
FROM table1
left outer JOIN table2
ON table1.ID=table2.ID
说真的,这将更详细地解释这个答案。我写这篇文章是专门为这样的情况而写的——你得到了问题的答案,但可能没有得到足够的细节和答案来让它完全留在你的脑海中——Q&A用大量的细节解释了一切(例如内部连接、外部连接)。

我认为你想要一个“左-外部连接”:

SELECT table1.value, table2.additionalinfo
FROM table1 LEFT JOIN
     table2
     ON table1.ID = table2.ID;