2014-10-04 68 views
0

我的wordpress數據庫(gooda814_bilby01)中有許多表。我想要一個函數將數據庫中的表與數據庫中的表中的列中的值進行比較,以便該函數將創建不在列表中的任何表。我有一個PHP的解決方案,是不雅:從mysql數據庫返回表中未列在數據庫表中的列中的查詢

$fdc_tables = $wpdb->get_results('SELECT distinct `fdc_form` FROM `fdc_tables`', ARRAY_A); 
$wp_tables = $wpdb->get_results('show tables from gooda814_bilby01', ARRAY_A); 
foreach($fdc_tables as $fkey => $fvalue) { $fdc[$fkey] = $fvalue['fdc_form']; } 
foreach($wp_tables as $wkey => $wvalue) { $wpt[$wkey] = $wvalue['Tables_in_gooda814_bilby01']; } 

$required tables = (array_values((array_diff($fdc, $wpt)))); 

,但我想可能有一個整潔的MySQL的加入,如:

select distinct fdc_forms from 
join show tables on Tables_in_gooda814_bilby01 = fdc_tables.fdc_forms 

然而,這當然會返回錯誤#1064

回答

0

使用子查詢而不是JOIN

試試這個SQL

SELECT fdc_form 
FROM fdc_tables 
WHERE fdc_form NOT IN (
    SELECT T.TABLE_NAME 
    FROM information_schema.TABLES T 
    WHERE T.TABLE_SCHEMA='gooda814_bilby01' 
); 
+0

這完美的作品。謝謝。 – Mark 2014-10-04 10:24:08

相關問題