Raj 0203 Ответов: 3

Может ли кто-нибудь помочь мне получить этот вывод?


Всем Привет,

У меня есть две таблицы, как показано ниже,

Таблица1:
---------------------------------------
SNO| Name  | ID| 
----------------------------------
1  | Aj Ali  | A001 |
2  | DB Kola | A002 |  
3  | Raj Sir | A003 |
----------------------------------


Таблица2 :
----------------------------------
SNO| Name  | 
----------------------------------
10  | Ali Aj  | 
20  | DB Kola Mj|   
30  | Sir Raj | 
----------------------------------


Теперь мне нужен такой вывод,

----------------------------------
SNO| Name  | ID |
----------------------------------
10  | Ali Aj  |  A001 |
20  | DB Kola |  A002 |     
30  | Sir Raj |  A003 |  
----------------------------------


Здесь проблема заключается в том, что значения столбца" имя " находятся не в одном порядке (имя и фамилия).

Пожалуйста, помогите мне в этом.

Что я уже пробовал:

select Table2.SNO,Table2.Name,Table1.ID from Table1 inner join Tabl2 on Table1.Name=Table2.Name


--------------------
И мой вывод только такой,
----------------------------------
SNO| Name  | ID |
----------------------------------
20  | DB Kola |  A002 |     
----------------------------------

3 Ответов

Рейтинг:
20

F-ES Sitecore

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

----------------------------------
SNO| SNO_ID  | 
----------------------------------
10  | 1  | 
20  | 2 |   
30  | 3 | 
----------------------------------


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

SELECT t2.SNO, t1.Name, T1.ID from Table1 t1 join Table1 t2 on t2.SNO_ID = t1.SNO


Рейтинг:
1

Peter Leow

Как бы то ни было, вы не можете быть уверены в правильной связи между этими двумя таблицами, хотя она, по-видимому, предполагает поля имен в соответствующих таблицах. Но значения имен не идентичны. Это результат плохого дизайна базы данных. Имя не может быть уникальным, просто представьте, сколько людей могут иметь одинаковые имена и разные способы написания имени. По праву они должны быть связаны такими полями идентификаторов, как это:

table 1        table 2
SNO            SNO
ID  ---------- ID
Name
Это всего лишь один пример, фактический дизайн таблицы будет зависеть от требований. Начать обучение Введение в проектирование баз данных[^] и 1NF, 2NF, 3NF и BCNF в нормализации баз данных / учебник по СУБД | Studytonight[^] и перепроектировать свою базу данных.


Karthik_Mahalingam

5

Рейтинг:
1

Patrice T

Нет никакого автоматического способа обеспечить это ДБ Кола является ДБ Кольского МДж или нет, точно так же, как 2 человека могут иметь одно и то же имя.
Вот почему никто не использует имя в качестве ключа между таблицами, никогда.
Как дизайнер баз данных, ваша задача-обеспечить, чтобы такая ситуация никогда не случилась.


Karthik_Mahalingam

5

Patrice T

Спасибо