Можно ли использовать LIKE или "=" в двух столбцах с НЕКОТОРЫМИ общими значениями? - PullRequest
0 голосов
/ 07 октября 2018

В моей базе данных есть следующие таблицы:

CUS
Name varchar(20)
CustomerID varchar(8)

PET
Name varchar(20)
PetID varchar (8)

CUS Table
| Name | CustomerID  |
----------------------
| John | AC001       |

PET Table
| Name     | PetID   |
----------------------
| Snuffles | AC001-01|
| Puffles  | AC001-02|

Вы можете видеть, что Snuffles & Puffles принадлежит Джону, поскольку их PetID такие же, как у CustomerID Джона, но с дополнительными 3 символами.

Мой вопрос:

Могу ли я использовать "=" или "LIKE" в столбцах:

SELECT CUS.Name , PET.Name, PetID
FROM CUS, PET
WHERE PetID = CustomerID;

, чтобы яполучить аналогичный результат:

WHERE PetID LIKE 'AC%' AND CustomerID LIKE 'AC%';

, где в таблице будет показано:

| Name     | Name     |  PetID   |
-----------------------------------
| John     | Snuffles | AC001-01 |
| John     | Puffles  | AC001-02 |

без необходимости явно записывать условия подстановочных знаков для каждого владельца / питомца.

1 Ответ

0 голосов
/ 07 октября 2018

Да, вы можете использовать LIKE в качестве условия соединения:

SELECT CUS.Name, PET.Name, PetID
FROM CUS
JOIN PET
  ON PetId LIKE CONCAT(CustomerId,'%');

db <> fiddle demo

...