2010-02-15 94 views
0

我有两个表,我想根据category_id查询和合并。MySQL UNION查询语法

我的事件表有一个名为event_category_id的列,它创建事件与其类别之间的关系。该值是一个int。

在我的分类表中,我有一个名为category_id的列,这是我想要匹配的,并用varchar值category_name代替int值。

我的语法是什么?谢谢您的帮助!

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', time NOT NULL default '00:00:00', EVENT_END_TIME 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 (事项标识) ) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=latin1

+1

请发表您的表结构从'CREATE TABLE tablename' – dnagirl

回答

1

我不认为你想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; 
+0

谢谢输出,这是完美,你说得对,我想加入。干杯! – Marty

+0

我希望我可以在这里给你更多的观点,我只是再次参考这个另一个项目!谢谢。 – Marty

1
select * from events e join categories c on (c.category_id=e.event_category_id); 
1

这不是UNION但JOIN如果我理解正确

SELECT c.category_name, e.* FROM events e JOIN categories c ON (c.category_id = e.event_category_id);