Может кто-нибудь показать мне, что я делаю неправильно?SQL Объединяет проблему oracle 11g
Вопрос:
Создать уникальный список имен и фамилий для любого живущего в 4389 Jaffa Terrace S.
В ERD:
Что Ive пробовал:
SQL> SELECT MORTAL.FIRST_NAME, MORTAL.LAST_NAME
2 FROM MORTAL
3 LEFT JOIN MORTAL_ADDRESS ON MORTAL.MORTAL_ID = MORTAL_ADDRESS.MORTAL_ID
4 LEFT JOIN ADDRESS ON MORTAL_ADDRESS.ADDRESS_ID = ADDRESS.ADDRESS_ID
5 WHERE ADDRESS.ADDRESS_LINE1 LIKE '4389%';
no rows selected
Мне не очень нравится оператор LIKE, я бы предпочел вместо этого использовать '='.
SQL> SELECT MORTAL.FIRST_NAME, MORTAL.LAST_NAME
2 FROM MORTAL
3 LEFT JOIN MORTAL_ADDRESS ON MORTAL.MORTAL_ID = MORTAL_ADDRESS.MORTAL_ID
4 LEFT JOIN ADDRESS ON MORTAL_ADDRESS.ADDRESS_ID = ADDRESS.ADDRESS_ID
5 WHERE ADDRESS.ADDRESS_LINE1 = '4389%';
no rows selected
SQL> SELECT MORTAL.FIRST_NAME, MORTAL.LAST_NAME
2 FROM MORTAL
3 LEFT OUTER JOIN MORTAL_ADDRESS ON MORTAL.MORTAL_ID = MORTAL_ADDRESS.MORTAL_ID
4 LEFT OUTER JOIN ADDRESS ON MORTAL_ADDRESS.ADDRESS_ID = ADDRESS.ADDRESS_ID
5 WHERE ADDRESS.ADDRESS_LINE1 = '4389%';
no rows selected
Я знаю, что в стыки где-то, но это, кажется, как прямо вперед, влево присоединиться, как и увиденным это Ive, на w3schools.com:
Ive запустить пару запросов чтобы проверить данные:
SQL> select address_line1 from address
2 where upper(substr(address_line1, 5,1)) = 'J';
no rows selected
SQL> select address_line1 from address
2 where address_line1 like '4389%';
ADDRESS_LINE1
-------------------------------------------------------
4389 JAFFA Terrace S.
4389 Jaffa Terrace S.
есть ли способ сделать это, что я не видел, не используя «LIKE»?
(ответьте, пожалуйста, как ответ, а не комментарий, так что я могу до-тик вас. Спасибо!)
Я до сих пор получаю 'нет выбранных строк. –
@BrianWilson Вы уверены, что в этой колонке есть данные? – Mihai
да, данные находятся в этой колонке: 4389 JAFFA Terrace S. 4389 Jaffa Terrace S. @Mihai –