Use CASE
or IF
syntax:
SELECT IF(table1.age > 18, table1.user, table2.user)
FROM ...
It works like so (From the documentation):
If the first argument is TRUE, IF()
returns the second argument. Otherwise, it returns the third argument.
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'
Further EDIT (In regards to your updated question). I believe what you're looking for is a LEFT JOIN
. If the data doesn't exist in the alternate table, you will still return a row in the database (But any columns in the associated table will return null). Then you can either get the data programattically in PHP, or using something like IF(andesite_adsrice.adsrice_adsase IS NULL, andesite_advertisement.column1, andesite_adsrice.column1)
.