2013-02-17 39 views
0

我很喜歡在MySQL中進行連接,我非常確定這是我需要做的工作(儘管糾正了我的錯誤)。MySQL語句查找兩個表中的數據

所以我有兩個表。下面是建立一個簡單的數據庫的SQL:

CREATE TABLE IF NOT EXISTS `wp_usermeta` (
`umeta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
`user_id` bigint(20) unsigned NOT NULL DEFAULT '0', 
`meta_key` varchar(255) DEFAULT NULL, 
`meta_value` longtext, 
PRIMARY KEY (`umeta_id`), 
KEY `user_id` (`user_id`), 
KEY `meta_key` (`meta_key`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 


INSERT INTO `wp_usermeta` (`umeta_id`, `user_id`, `meta_key`, `meta_value`) VALUES 
(1, 1, 'first_name', 'David'), 
(2, 1, 'last_name', 'Jones'), 
(3, 1, 'nickname', 'david'), 
(4, 1, 'newsletter', '1'), 
(5, 2, 'first_name', 'Greg'), 
(6, 2, 'last_name', 'Smith'), 
(7, 2, 'nickname', 'greg'), 
(8, 2, 'newsletter', '0'); 

CREATE TABLE IF NOT EXISTS `wp_users` (
`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
`user_login` varchar(60) NOT NULL DEFAULT '', 
`user_pass` varchar(64) NOT NULL DEFAULT '', 
`user_nicename` varchar(50) NOT NULL DEFAULT '', 
`user_email` varchar(100) NOT NULL DEFAULT '', 
PRIMARY KEY (`ID`), 
KEY `user_login_key` (`user_login`), 
KEY `user_nicename` (`user_nicename`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 

INSERT INTO `wp_users` (`ID`, `user_login`, `user_pass`, `user_nicename`, `user_email`) VALUES 
(1, 'david', '$^*#NNR&Y&)Mn9emfdfsdfsdfsd', 'david', '[email protected]'), 
(2, 'greg', 'fdfsdfsdfsd$^*#NNR&Y&)Mn9em', 'greg', '[email protected]'); 

...我需要編寫簡單地認定誰訂閱電子報(meta_key用戶基本的網頁聲明meta_value of )並顯示它們的first_nameuser_email

在此先感謝。

回答

2

它需要一個相當簡單的連接;

SELECT user_login FROM wp_users 
JOIN wp_usermeta 
    ON wp_users.id=wp_usermeta.user_id 
WHERE meta_key='newsletter' 
    AND meta_value=1; 

SQLfiddle to play with

+0

非常感謝。其實這很簡單。 – PHPnoob 2013-02-17 12:56:02