2010-02-15 126 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);