Соедините несколько таблиц с несколькими условиями и без отношений - PullRequest
0 голосов
/ 21 декабря 2018

Ниже ответили:

Мне очень жаль, ребята, в моем запросе нет ничего плохого, это просто моя глупая ошибка при чтении данных, у меня нет никакихданные, которые относятся ко второй таблице, поэтому она была пустой.


У меня проблема с объединением таблиц для получения результатов из нескольких таблиц.У меня есть несколько таблиц без взаимосвязей, как это:

Order:

Id . Name 
---------
1  . abc
2  . def

OrderDetail

Id . OrderId . Value
---------------------
1  .    1    .   35
2  .    1    .   24 
3  .    2    .   45   

Я хочу получить некоторый результат из OrderDetail, но условиедолжно быть в Order, вот так:

SELECT od.* 
FROM Order o, OrderDetail od 
WHERE o.id = od.OrderId AND o.name = 'abc';

Я ожидаю, что результат будет похож на

OrderDetail

Id . OrderId . Value
1  .    1    .   35
2  .    1    .   24 

, но я ничего не получу от результата, но если я бегу;

SELECT od.* 
FROM Order o, OrderDetail od 
WHERE o.id = od.OrderId;

Я все еще получаю полный результат, мои 2 таблицы не имеют никакого отношения друг к другу.

Ответы [ 3 ]

0 голосов
/ 21 декабря 2018

Мне очень жаль, ребята, в моем запросе нет ничего неправильного, это просто моя глупая ошибка при чтении данных, у меня нет данных, которые относятся ко второй таблице, поэтому она была пустой.Спасибо за ваше время

0 голосов
/ 21 декабря 2018

Я полагаю, что вы после:

SELECT od.* FROM Order o
JOIN OrderDetail od ON o.id = od.OrderId 
WHERE o.name = 'abc';
0 голосов
/ 21 декабря 2018

Забудьте о присоединении.Что это возвращает?

select o.*
from orders o
where o.name = 'abc';

Я предполагаю, что ничего не возвращается.Так что то, что вы видите как «abc», на самом деле не «abc».Наиболее вероятная проблема - скрытые символы.Начните с символов в начале и конце:

where o.name like '%abc%';

Это может помочь вам выяснить, в этом ли проблема.Если это все еще ничего не возвращает, то, возможно, есть проблемы между символами:

where o.name like '%a%b%c%';

Если это все еще ничего не возвращает, тогда «a», «b» или «c» могут бытьплохой характер.Это становится сложнее понять, если вы не посмотрите на фактический сохраняемый символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...