我有两张桌子。两者都有名为“ID”的字段。
Table 1 has "ID", "Title", "Shift"
Table 2 has "ID", "Table1ID", "Details"
我想查询表2并根据“ID”值检索所有详细信息,但也从表1中获取与“Table1ID”值相关的值。
我试过这个......
SELECT * FROM Table2 a, Table1 b WHERE a.TableID = b.ID
这可以工作但只检索一个表“ID”字段。
我一直在玩UNION ALL,但无法让它发挥作用。
有什么想法吗?
由于
答案 0 :(得分:1)
是的,您可以添加别名:
SELECT a.ID AID, a.Title, a.Shift, b.ID BID, b.TableID, b.Details
FROM Table2 a, Table1 b
WHERE a.TableID = b.ID
以上内容将在结果中以ID
和AID
的形式从表A和B返回BID
。
答案 1 :(得分:1)
有没有办法让SELECT获取所有字段(没有 明确地写它们)并且仍然是别名的特定字段?
是的,但它被认为是有害的
这就是你如何做id
SELECT Table1.*,Table2.* from table1 inner join Table2 on Table1.ID = Table2.Table1ID;
为什么我说它有害,请看这里:Why is SELECT * considered harmful?
正确选择应该是:
SELECT Table1.ID,Table1.Title,Table1.Shift,Table2.ID.Table2.Table1ID,Table2.Details.* from table1 inner join Table2 on Table1.ID = Table2.Table1ID;