如果我在两个表之间没有相同的数据,可以打印其他表中的数据吗?

时间:2018-07-29 13:51:33

标签: php mysql sql

php mysql如果'x'表中的值不在'y'表中,则将数据打印在'x'表中?

Mysql查询:

SELECT * FROM andesite_advertisement INNER JOIN andesite_adsrice ON (andesite_adsrice.adsrice_adsase = andesite_advertisement.advertisement_base)

1 个答案:

答案 0 :(得分:0)

使用CASEIF语法:

SELECT IF(table1.age > 18, table1.user, table2.user)
FROM ...

它的工作原理如下(来自文档):

  

如果第一个参数为TRUE,则IF()返回第二个参数。否则,它将返回第三个参数。

mysql> SELECT IF(1>2,2,3);
    -> 3
mysql> SELECT IF(1<2,'yes','no');
    -> 'yes'
mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
    -> 'no'

进一步编辑(关于您更新的问题)。我相信您正在寻找的是LEFT JOIN。如果备用表中不存在数据,您仍将在数据库中返回一行(但是关联表中的任何列都将返回null)。然后,您可以使用PHP以编程方式获取数据,或使用类似IF(andesite_adsrice.adsrice_adsase IS NULL, andesite_advertisement.column1, andesite_adsrice.column1)的数据。