Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-1098351193
Samick
2004-10-21 13:33
2004.11.21
скажите как мне в grid занести базу данных


1-1099992632
Stanislav
2004-11-09 12:30
2004.11.21
TMemoryStream В чем отличее методов


8-1092503031
Batoon
2004-08-14 21:03
2004.11.21
Помогите определиться


1-1099689667
Kolan
2004-11-06 00:21
2004.11.21
Поле предка


14-1099566757
Кирилл
2004-11-04 14:12
2004.11.21
Координаты точки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский