sys_field表
fie_id fie_name fie_tabid
sys_table表
tab_id tab_name
我想要的效果是 查询出 表名 为 a,b,c 的表字段信息和表信息
这是我些的sql
[code="sql"]
SELECT *
FROM (SELECT *
FROM (SELECT FIE_ID, FIE_NAME, FIE_TABID) T1
LEFT JOIN (SELECT TAB_ID, TAB_NAME WHERE TAB_NAME IN('a', 'b', 'c')) T2
ON T1. FIE_TABID = T2.TAB_ID)
WHERE TAB_ID IS NOT NULL
[/code]
我想要的是每条字段信息 都配上所在表的全部信息
有没有更好的查询方式
你先left join 之后 又把 TAB_ID 去掉了.效果上应该和INNER JOIN是一样的.
SELECT *
FROM (SELECT FIE_ID, FIE_NAME, FIE_TABID) T1
INNER JOIN (SELECT TAB_ID, TAB_NAME WHERE TAB_NAME IN('a', 'b', 'c')) T2
ON T1. FIE_TABID = T2.TAB_ID);
[code="java"]
SELECT T1.TAB_ID, T1.TAB_NAME, T2.FIE_ID, T2.FIE_NAME
FROM SYS_TABLE T1
LEFT JOIN SYS_FIELD T2 ON T1.TAB_ID = T2.FIE_TABID AND T1.TAB_ID IS NOT NULL AND T1.TAB_NAME IN ('A','B','C')
[/code]