Как объединить результаты двух запросов в один набор данных

Вам нужно указать значение.

<option value="<%=locationDO.getLocationName().trim()%>">

Пространство - это разделитель атрибутов HTML. Браузер с немного приличным синтаксическим маркером уже намекнул бы, когда вы проверили сгенерированный HTML по правой странице страницы> View Source .

<option value=Aztec Auto Ltd>

по сравнению с

<option value="Aztec Auto Ltd">
29
задан CodeNinja 5 March 2013 в 17:42
поделиться

9 ответов

Вот пример, который объединяет две совершенно не связанные между собой таблицы: таблицу Student и Products. Он генерирует выходные данные, которые состоят из 4 столбцов:

select
        FirstName as Column1,
        LastName as Column2,
        email as Column3,
        null as Column4
    from
        Student
union
select
        ProductName as Column1,
        QuantityPerUnit as Column2,
        null as Column3,
        UnitsInStock as Column4
    from
        Products

Очевидно, вы настроите это для своей собственной среды ...

48
ответ дан Jodrell 5 March 2013 в 17:42
поделиться

Я думаю, что вы после чего-то вроде этого; (Использование row_number() с CTE и выполнение FULL OUTER JOIN)

Пример Fiddle

;with t1 as (
  select col1,col2, row_number() over (order by col1) rn
  from table1 
),
t2 as (
  select col3,col4, row_number() over (order by col3) rn
  from table2
)
select col1,col2,col3,col4
from t1 full outer join t2 on t1.rn = t2.rn

Таблицы и данные:

create table table1 (col1 int, col2 int)
create table table2 (col3 int, col4 int)

insert into table1 values
(1,2),(3,4)

insert into table2 values
(10,11),(30,40),(50,60)

Результаты:

|   COL1 |   COL2 | COL3 | COL4 |
---------------------------------
|      1 |      2 |   10 |   11 |
|      3 |      4 |   30 |   40 |
| (null) | (null) |   50 |   60 |
26
ответ дан Kaf 5 March 2013 в 17:42
поделиться

Как насчет,

select
        col1, 
        col2, 
        null col3, 
        null col4 
    from Table1
union all
select 
        null col1, 
        null col2,
        col4 col3, 
        col5 col4 
    from Table2;
11
ответ дан Jodrell 5 March 2013 в 17:42
поделиться

Если вы имеете в виду, что оба поля ProductName должны иметь одинаковое значение, то:

SELECT a.ProductName,a.NumberofProducts,b.ProductName,b.NumberofProductsSold FROM Table1 a, Table2 b WHERE a.ProductName=b.ProductName;

Или, если вы хотите, чтобы столбец ProductName отображался только один раз,

SELECT a.ProductName,a.NumberofProducts,b.NumberofProductsSold FROM Table1 a, Table2 b WHERE a.ProductName=b.ProductName;

В противном случае, если любая строка Таблицы 1 может быть связана с какой-либо строкой из Таблицы 2 (даже если я действительно задаюсь вопросом, почему кто-то захочет это сделать), вы можете взглянуть на этот .

3
ответ дан Community 5 March 2013 в 17:42
поделиться

Попробуйте это:

SELECT ProductName,NumberofProducts ,NumberofProductssold
   FROM table1 
     JOIN table2
     ON table1.ProductName = table2.ProductName
0
ответ дан giannis christofakis 5 March 2013 в 17:42
поделиться

Проблема в том, что если ваши таблицы не связаны, вы не можете определить, как к ним присоединиться, поэтому вам придется произвольно присоединиться к ним, что приведет к декартовому произведению:

select Table1.col1, Table1.col2, Table2.col3, Table2.col4
from Table1
cross join Table2

Если бы вы имели Например, следующие данные:

col1  col2
a     1
b     2

col3  col4
y     98
z     99

В итоге вы получите следующее:

col1  col2  col3  col4
a     1     y     98
a     1     z     99
b     2     y     98
b     2     z     99

Это то, что вы ищете? Если нет, и у вас есть некоторые способы связывания таблиц, то вам нужно будет включить их в объединение двух таблиц, например:

select Table1.col1, Table1.col2, Table2.col3, Table2.col4
from Table1
inner join Table2
on Table1.JoiningField = Table2.JoiningField

. связан, давая вам ваш результат.

2
ответ дан David T. Macknet 5 March 2013 в 17:42
поделиться

Загрузка каждого запроса в таблицу данных:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=143

загрузка обоих таблиц данных в набор данных:

http://msdn.microsoft.com/en-us/library/aeskbwf7%28v=vs.80%29.aspx

0
ответ дан RandomUs1r 5 March 2013 в 17:42
поделиться

Это то, что вы можете сделать. Предполагая, что ваш столбец ProductName имеет общие значения.

SELECT 
     Table1.ProductName, 
     Table1.NumberofProducts, 
     Table2.ProductName, 
     Table2.NumberofProductssold
FROM Table1
INNER JOIN Table2
ON Table1.ProductName= Table2.ProductName
0
ответ дан Praveen Nambiar 5 March 2013 в 17:42
поделиться

Попробуйте это:

ПОЛУЧИТЕ ЗАПИСЬ ДЛЯ CURRENT_MONTH, LAST_MONTH и ALL_TIME И MERGE ИХ В ОДНОМ МАТРИЦЕ

$analyticsData = $this->user->getMemberInfoCurrentMonth($userId);
$analyticsData1 = $this->user->getMemberInfoLastMonth($userId);
$analyticsData2 = $this->user->getMemberInfAllTime($userId);                        

    foreach ($analyticsData2 as $arr) {                
        foreach ($analyticsData1 as $arr1) {
            if ($arr->fullname == $arr1->fullname) {
                $arr->last_send_count = $arr1->last_send_count;
                break;
            }else{
                $arr->last_send_count = 0;
            }
        }
        foreach ($analyticsData as $arr2) {
            if ($arr->fullname == $arr2->fullname) {
                $arr->current_send_count = $arr2->current_send_count;
                break;
            }else{
                $arr->current_send_count = 0;
            }
        }
    }
    echo "<pre>";
    print_r($analyticsData2);die;
-3
ответ дан Aurasphere 5 March 2013 в 17:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: