Как запросить два разных поля из таблицы и сделать так, чтобы они появлялись в одной строке? - PullRequest
0 голосов
/ 02 августа 2010

У меня есть две таблицы.Скажем:

This is table 1
+--------+-----------------------+
| stuff  | foreing   | foreing2  |
+--------+-----------------------+
| bazzzz |       555 |       666 |
+--------+-----------------------+

This is table 2
+-----------------------+
| id_table | values     |
+-----------------------+
|      555 | Foo        |
+-----------------------+
|      666 | Bar        |
+-----------------------+

Мне нужен SQL-запрос, который дает мне строку с этой информацией:

+--------+-----------------------+
| stuff  | value1    | value2    |
+--------+-----------------------+
| bazzzz | Foo       | Bar       |
+--------+-----------------------+

Это то, что я пытался сделать, но на самом деле он возвращает две строкичто не то, что я хочу:

SELECT table1.stuff,
    table2.values as value1,
    table2.values as value2
    WHERE table1.foreing = table2.id_table
    OR table1.foreing2 = table2.id_table

Ответы [ 2 ]

3 голосов
/ 02 августа 2010

Поскольку вам нужно сопоставить два столбца с одной и той же дочерней таблицей ... вам нужно дважды ссылаться на дочернюю таблицу ...

Select table1.Stuff, B.Vales as Value1, C.Values as Value2
 From table1, table2 as B, table2 as C
   Where table1.foreing = B.id_table and table1.foreing2 = C.id_table
0 голосов
/ 02 августа 2010

Вы должны будете сделать внутренние запросы, как это:

SELECT table1.stuff,
    (select table2.values as value1 where table2.id_table=table1.foreing),
    (select table2.values as value2 where table2.id_table=table1.foreing2)
    from table1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...