0
试图在查询内连接3个表返回空结果。奇怪的是,删除了一个表(两个表连接)返回一些集合。这是我做的:通过Spring JdbcTemplate连接多个表返回空结果
String sql = "SELECT\n" +
" tc.constraint_name, tc.table_name, kcu.column_name, \n" +
" ccu.table_name AS foreign_table_name,\n" +
" ccu.column_name AS foreign_column_name, constraint_type \n" +
"FROM \n" +
" information_schema.table_constraints AS tc \n" +
" JOIN information_schema.key_column_usage AS kcu\n" +
" ON tc.constraint_name = kcu.constraint_name\n" +
" JOIN information_schema.constraint_column_usage AS ccu\n" +
" ON ccu.constraint_name = tc.constraint_name\n" +
"WHERE constraint_type = 'FOREIGN KEY'";
List<Map<String, Object>> foreignTable1 = jdbcTemplate(getShardId(sku)).queryForList(sql);
总会返回一个空集。
我还使用了来自information_schema.table_constraints,information_schema.key_column_usage,information_schema.constraint_column_usage的外部SELECT *。相同的空白结果。但只有2个表返回 – Macchiatow
我只需将第二个连接快速更改为“OUTER JOIN”,以检查第一个连接的结果集是否没有匹配的行。 – Smutje
从information_schema.table_constraints,information_schema.key_column_usage,information_schema.constraint_column_usage中选择*将产生一个笛卡儿无匹配! – Macchiatow