Php 如何使用sqlunion

Php 如何使用sqlunion,php,sql,Php,Sql,我不知道如何正确使用SQLUnion。 我有两个带有域(url)的表,我想将表1和表2进行比较,以便从表2中获得唯一的域,而表2不在表1中 范例 表1 id domain 1 google.com 2 facebook 3 stackoverflow.com id domain 1 youtube.com 2 facebook 3 stackoverflow.com 表2 id domain 1 google.com 2 faceb

我不知道如何正确使用SQLUnion。 我有两个带有域(url)的表,我想将表1和表2进行比较,以便从表2中获得唯一的域,而表2不在表1中

范例

表1

id   domain
1    google.com
2    facebook
3    stackoverflow.com
id   domain
1    youtube.com
2    facebook
3    stackoverflow.com
表2

id   domain
1    google.com
2    facebook
3    stackoverflow.com
id   domain
1    youtube.com
2    facebook
3    stackoverflow.com
所以我想比较两个表,得到youtube.com,因为它不在表1中 我就这样使用sql联合

$query="SELECT table1.domain, table2.domain "."FROM table1, table2 "."WHERE table1.domain != table2.domain";
$result = mysql_query($query) or die(mysql_error());
while ($rec = mysql_fetch_array($result))
{
$new_url=$rec["domain"];
}
现在我得到了双重结果,比如youtube.com youtube.com 因此,请帮助我找出我的sql语句的错误所在

您应该使用

SELECT t2.domain FROM
table2 t2 LEFT JOIN table1 t1
    ON t2.domain = t1.domain
WHERE t1.domain IS NULL

这就是您正在寻找的SQL

SELECT DISTINCT t1.domain FROM t1
WHERE domain not in (SELECT t2.domain FROM t2)

您需要的关系运算符是difference(并集类似于加法)。在标准SQL中,关键字是
,除了
(在Oracle中是
减去
,这在我看来更直观一些):


“php”标记是否意味着MySQL?MySQL缺少显式关系差异运算符,因此您需要使用构造。

您需要使用连接,而不是联合。为什么使用。字符串中的分隔符?请参见Marco的答案,在大多数DBMS上,它的速度要快得多s@dtech是的,我知道。我只提供了一种不同的解决方案。。。像“逻辑训练”一样阅读: