У меня есть базовый сервис лампы apache 2, работающий с mysql и php5.mysql, выбирая из разных таблиц (эквивалент FULL OUTER JOIN)?
У меня есть 2 таблицы, одна называется articles
, который содержит столбцы id
(первичный ключ, автоматическое приращение), title, posted, author_id, extract, body
и другую таблицу, которая вызывается authors
, который содержит столбцы id
(первичный ключ, автоматический инкремент), name, img, bio
.
Я хочу сделать предложение select, которое возвращает articles.title, articles.posted, articles.extract, articles.body, authors.name. Теперь нормально, я бы сделал FULL OUTER JOIN
, но это не сработает, и после того, как я немного разобрался, я узнал, что вы не можете сделать это в mysql, google предлагает использовать UNION
или комбинировать LEFT JOIN
и RIGHT JOIN
.
Я пробовал, но почему-то я не могу заставить его работать. Я не могу создать союз, потому что мои таблицы имеют разные числа столбцов (есть много статей от того же автора).
Я также попытался это:
SELECT articles.title authors.name FROM articles
LEFT JOIN authors ON articles.author_id = authors.id
UNION
SELECT articles.title authors.name FROM articles
RIGHT JOIN authors ON articles.author_id = authors.id;
, но я получаю сообщение об ошибке: ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.name FROM articles
Любое представление о том, как сделать эту работу было бы здорово.
Я также хотел бы отсортировать результаты по articles.posted
, DESC
, но я, вероятно, смогу это выяснить самостоятельно, как только я получу начальное утверждение.
тьфу, время, чтобы сделать перерыв. Работает сейчас, спасибо за помощь –