Проблема в том, что если ваши таблицы не связаны, вы не можете определить, как к ним присоединиться, поэтому вам придется произвольно присоединиться к ним, что приведет к декартовому произведению:
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
. связан, давая вам ваш результат.
Для типов значений:
Если вам нужно изменить его в исходном магазин, используйте исх. Пример:
int a = -3;
protected void EnsurePositiveValues (значение ref int)
{
если (значение <0)
значение = 0;
}
Для ссылочных типов:
Если вам нужно (повторно) назначить в исходной ссылке используйте исх. Пример:
Пользователь u = MembershipAPI.GetUser (312354);
protected void EnsureUser (ссылка пользователя пользователя)
{
если (пользователь == нуль)
пользователь = новый пользователь ();
}
Также необходимо принять во внимание типы значений и ссылки. При передаче ссылочного типа методу в качестве параметра вы передаете переменной указатель . Это означает, что внутри метода вы можете вносить изменения в переменную, и они будут доступны для кода, который вызвал метод, однако, если вы установите для него значение null, вы устанавливаете только указатель на null, и переменная будет нетронутой, когда вы метод возвращает.
Не уверен, что это действительно ответ на ваш вопрос, но я нашел одно хорошее использование передачи значения по ссылке (с использованием ключевого слова out) ...
int i = 0;
if (int.TryParse("StringRepresentation", out i)
{
// do something with i which has taken the value of a the previous successful TryParse
}