Синтаксис запроса MySQL UNION - PullRequest
       9

Синтаксис запроса MySQL UNION

0 голосов
/ 15 февраля 2010

У меня есть две таблицы, которые я хочу запросить и объединить на основе category_id.

В моей таблице событий есть столбец с именем event_category_id, который создает связь между событием и его категорией. Значение является int.

В моей таблице категорий у меня есть столбец с именем category_id, которому я хочу соответствовать, и заменим значение int значением varchar category_name.

Какой у меня синтаксис? Спасибо за помощь!

categories CREATE TABLE wp_wild_dbem_categories ( category_id int(11) NOT NULL auto_increment, category_name tinytext NOT NULL, PRIMARY KEY ( category_id ) ) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1

events CREATE TABLE wp_wild_dbem_events ( event_id mediumint(9) NOT NULL auto_increment, event_author mediumint(9) default NULL, event_name tinytext NOT NULL, event_start_time time NOT NULL default '00:00:00', event_end_time time NOT NULL default '00:00:00', event_start_date date NOT NULL default '0000-00-00', event_end_date date default NULL, event_notes text, event_rsvp tinyint(1) NOT NULL default '0', event_seats tinyint(4) default NULL, event_contactperson_id mediumint(9) default NULL, LOCATION_ID mediumint(9) NOT NULL default '0', recurrence_id mediumint(9) default NULL, event_category_id int(11) default NULL, UNIQUE KEY event_id ( event_id ) ) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=latin1

Ответы [ 3 ]

1 голос
/ 15 февраля 2010
select * from events e join categories c on (c.category_id=e.event_category_id);
1 голос
/ 15 февраля 2010

Это не UNION, а ПРИСОЕДИНЯЙТЕСЬ, если я правильно понял

SELECT c.category_name, e.* FROM events e JOIN categories c ON (c.category_id = e.event_category_id);
1 голос
/ 15 февраля 2010

Я не думаю, что вы хотите UNION. Вы, вероятно, хотите что-то вроде этого:

SELECT e.event_id, e.other_field, c.category_name
FROM events e JOIN categories c ON (e.category_id=c.category_id)
WHERE some_condition;
...