2013-09-17 5 views
0

Я пытаюсь выбрать все результаты из таблицы A и всех результатов таблицы В
я использовал этот запросвыбрать все из двух таблиц

$request_public_imgs = $BDD-> query("SELECT * FROM images_public "); 
    UNION("SELECT * FROM images_users WHERE img_kind='PublicImg' ") 
    ; 

Но я получаю эту ошибку

Fatal error: Call to undefined function UNION() 

EDIT


Спасибо за все ваши ответы = D это работает отлично ^^,

+0

'SELECT * FROM images_users, images_public WHERE images_users.img_kind = 'PublicImg'' не возвращает результат? – erencan

ответ

3

Написать команду SQL как единое целое:

$request_public_imgs = $BDD-> query("SELECT id, field1, .. FROM images_public 
    UNION SELECT id, field1, .. FROM images_users WHERE img_kind='PublicImg' ") ; 

Вы должны выбрать точное поле и не использовать * для повышения производительности вещества. Adrien

+0

Производительность - хорошая причина, чтобы избежать выбора *, но это далеко не самая лучшая причина. Как насчет того, изменились ли порядки столбцов в результирующем наборе или таблице? – Brandon

+0

Спасибо u ^^ Это лучше, чем * FOR ME, потому что у меня разные столбцы – elBadr

3

UNION является MySQL функция, следовательно, вы должны поместить его в query():

$request_public_imgs = $BDD-> query(" 
SELECT * FROM images_public 
    UNION 
SELECT * FROM images_users WHERE img_kind='PublicImg' "); 

В целом, все запросы будут работать, как:

$request_public_imgs = $BDD-> query("YOUR_MYSQL_QUERY"); 

Обратите внимание, что ошибка Fatal error: Call to undefined function UNION() предупреждает о UNION не является функцией PHP.

0

попробовать это

$request_public_imgs = $BDD-> query("SELECT * FROM images_public 
    UNION SELECT * FROM images_users WHERE img_kind='PublicImg' ") 
    ; 
Смежные вопросы