Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
ВнизКак выбрать все из таблицы 1 и все из таблицы 2 Найти похожие ветки
← →
Aser (2004-10-22 11:39) [0]Мне нужно именно ВСЕ, а не по условию. В нете понаходил много выборок из двух таблиц, но там ограничение ставится на SELECT. Памагите пажалста.
← →
msguns © (2004-10-22 11:44) [1]OUTER JOIN .. ON <Заведомо не выполнияющееся условие>
← →
Reindeer Moss Eater © (2004-10-22 11:47) [2]select * from table1
union all
select * from table2
← →
msguns © (2004-10-22 11:50) [3]>Reindeer Moss Eater © (22.10.04 11:47) [2]
Это если таблицы идентичные..
← →
Reindeer Moss Eater © (2004-10-22 11:53) [4]>msguns © (22.10.04 11:44) [1]
Это если в таблицах одинаковое количество строк.
Иначе он получит все из таблицы 1 и все из таблицы 2 + какую-то фигню которой нет ни там, ни там.
← →
Aser (2004-10-22 11:57) [5]>msguns
SELECT clients.id
FROM clients
LEFT OUTER JOIN partners ON partners.id = ""
Выбирает только clients.id :(
> Reindeer Moss Eater
#1222 - The used SELECT statements have a different number of columns
> то если в таблицах одинаковое количество строк.
у меня разное :(
← →
Reindeer Moss Eater © (2004-10-22 11:59) [6]SELECT clients.id
Выбирает только clients.id :(
Что попросил, то и выбирает.
Вот зараза. Правда?
← →
Aser (2004-10-22 12:01) [7]:) :(
а как мне выбрать и из второй таблицы тоже? хотя бы partners.id?
← →
Reindeer Moss Eater © (2004-10-22 12:02) [8]Может стоит включить в список селекта то, чего хочешь, а не скромно ждать пока "само догадается" ?
← →
Johnmen © (2004-10-22 12:04) [9]>Reindeer Moss Eater © (22.10.04 11:53) [4]
Что-то ты прогнал...:)
← →
Aser (2004-10-22 12:05) [10]Ыыыы... Я то догадался... Но вот не наю как для условия LEFT JOIN смотрицца включение дополнительное...
SELECT clients.id, partners.id
FROM clients, partners
LEFT OUTER JOIN partners ON partners.id = ""
#1066 - Not unique table/alias: "partners"
← →
Reindeer Moss Eater © (2004-10-22 12:10) [11]Johnmen ©
Чего я прогнал?
У парня x1 строк и y1 полей в одной таблице
И x2 строк и y2 полей в другой таблице
Если сделать любое объединение таблиц, то либо не увидим части обной таблицы, либо увидим нулы которых нет в меньшей.
А так что бы все из первой и все из второй - не выйдет
← →
msguns © (2004-10-22 12:18) [12]Прежде всего надо выяснить откуда ноги произростают:
Есть 2 таблы
Table1
--------
Id Name
1 A
2 B
3 C
Table2
--------
Id Name
1 D
2 F
5 N
Что надо на выходе ?
Table3
--------
Id Name
1 A
1 D
2 F
2 B
3 C
5 N
или
Table3
--------
Id Name Name1
1 A D
2 B F
3 C
5 N
?????????
← →
Aser (2004-10-22 12:23) [13]Мне вот так (если мона) плз
Id Name Name1
1 A D
2 B F
3 C
5 N
← →
Johnmen © (2004-10-22 12:37) [14]>Reindeer Moss Eater © (22.10.04 11:47) [2]
>>Reindeer Moss Eater © (22.10.04 11:47) [2]
>>select * from table1
>>union all
>>select * from table2
>>msguns © (22.10.04 11:50) [3]
>>Это если таблицы идентичные..
>Reindeer Moss Eater © (22.10.04 11:53) [4]
>Это если в таблицах одинаковое количество строк.
>Иначе он получит все из таблицы 1 и все из таблицы 2 + какую-то
>фигню которой нет ни там, ни там.
Я так понял, ты говорил о union.
← →
msguns © (2004-10-22 13:25) [15]Вот так должно получиться:
SELECT T1.ID, T1.NAME, T2.NAME AS NAME1
FROM T1
LEFT JOIN T2 ON (T1.ID=T2.ID)
UNION
SELECT T2.ID, NULL AS NAME, T2.NAME AS NAME1
FROM T2
WHERE T2.ID NOT IN
(SELECT T2.ID
FROM T2, T1
WHERE T2.ID=T1.ID)
← →
msguns © (2004-10-22 13:44) [16]Только сейчас вроде дошло..
Похоже из [10] что трабла в извечной путанице поставщиков (кредиторов) и покупателей (дебиторов), когда заводят два разных справочника. И по чем же будем стыковать ? Надеюсь не по наименованиям ? Если по иден.коду, тогда еще можно надеяться на успех ;))
Видимо, что задачка что-то типа общего баланса с партнерами (как с дебеторами и кредиторами одновременно)
Вообще-то лучше всего делать один общий справочник, т.к. поля на 90% идентичные. И ввести доп.поле - флажок. Типа
0 - кредитор, 1-дебитор, 2-кредитор и дебитор
А если еще сделать в виде дерева, то узер будет пИсать от радости, т.к. оч.удобно. При показе именно поставщиков (например, при вводе приходных накладных) в запрос вставлять доп.условие <Флажок> <> 1
← →
Johnmen © (2004-10-22 14:01) [17]
SELECT IF(T1.ID IS NULL, T2.ID, T1.ID), T1.Name, T2.Name
FROM Table1 T1
FULL JOIN Table2 T2 ON T2.ID=T1.ID
ORDER BY 1
← →
msguns © (2004-10-22 14:26) [18]FULL не пропускает ODBC-driver ;((
А что это за "IF" ?
← →
Johnmen © (2004-10-22 14:47) [19]
> msguns © (22.10.04 14:26) [18]
> FULL не пропускает ODBC-driver ;((
Здесь я загнул :) Забыл, что в MySQL нет полного внешнего соединения...
← →
Johnmen © (2004-10-22 14:48) [20]
> msguns © (22.10.04 14:26) [18]
> А что это за "IF" ?
Есть в нем встроенный условный оператор.
← →
msguns © (2004-10-22 15:06) [21]В ODBC-драйвере ? Или сиквеле стандарта ?
Дай ссылку, если можно. Утерял я доку при переезде, а урлу запамятовал.
← →
Johnmen © (2004-10-22 15:20) [22]Серега, ты чего ? :)
mysql.ru
Яndex+"оператор if в mysql"
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.036 c