0

我有 2 个如下表:

1)

    Engine
    ======

ID     Title    Unit   Value
123    Hello    Inch   50
555    Hii      feet   60

2)

    Fuel
    =====

ID    Title     Value
123   test12     343
555   test5556   777

我希望根据给定的 ID 在 2 列中选择结果(两个表中的 ID 应该相同):

标题 -- This will get the (Title + Unit) from Engine table and only Title from Fuel table. Value

价值-- This will get Value from both tables.

ID = 123 的结果是:

Title          Value

Hello(Inch)   50
test12        343

任何建议我如何在 SQL Server 2008 中得到这个。

4

4 回答 4

0

您可能应该看一下诸如Introduction to JOINs – Basic of JOINs 之类的东西,并阅读一些关于 JOINS 的内容

编辑

也许那时也看

于 2012-12-21T11:12:45.140 回答
0

查看 SQL JOIN:INNER JOIN、LEFT JOIN 等

Select 
      e.ID, e.Title, e.Unit, e.Value, f.Title as FuelTitle, e.Value as FuelValue,
      e.Title+' '+e.Units As TitleAndUnits
From Engine e
Join Fuel f
On e.ID = f.ID
于 2012-12-21T11:15:00.300 回答
0

根据您相同的数据和所需的结果,您似乎想使用 aUNION ALL从两个表中获取数据:

select title+'('+Unit+')' Title, value
from engine
where id = 123
union all
select title, value
from fuel
where id = 123

请参阅带有演示的 SQL Fiddle

查询的结果是:

|       TITLE | VALUE |
-----------------------
| Hello(Inch) |    50 |
|      test12 |   343 |
于 2012-12-21T11:53:02.663 回答
0

您可以在 w/oa join 的情况下执行此操作,但使用 join 可能会更优化,具体取决于您的情况中的其他因素。

不带连接的示例:

select concat(t1.c1, ' ', t1.c2, ' ', t2.c1) col1, concat(t1.c3, ' ', t2.c3) col2 
from t1, t2
where t1.id = [ID] and t2.id = [ID]
于 2012-12-21T11:18:35.527 回答