我有一個基本查詢從三個表中獲取值。三個表格:公司,classes_by_company和person。我在所有名稱爲company_id的表中都有一個外鍵。在where子句中,我使用LIKE
與隨機值進行比較,以獲取可能匹配的任何結果的值。但是我沒有這麼做。我在sql行WHERE a.id LIKE %1% OR a.company_id LIKE %3% OR c.count LIKE %1% OR p.count LIKE %1%
中遇到錯誤。我如何將這三個表中的所有值與一個隨機值進行比較,以查看是否存在匹配? SQLFIDDLE在查詢子句中使用LIKE %%和來自不同表的多個值
SELECT a.id, a.company_id, a.status,
c.count AS classes_per_company,
p.count AS employees_per_company
FROM company a
LEFT JOIN (SELECT company_id, COUNT(*) as count
FROM classes_by_company
GROUP BY company_id) c
ON a.company_id = c.company_id
LEFT JOIN (SELECT company_id, COUNT(*) as count
FROM person
GROUP BY company_id) p
ON a.company_id = p.company_id
WHERE a.id LIKE %1% OR a.company_id LIKE %3% OR c.count LIKE %1% OR p.count LIKE %1%
表結構:
CREATE TABLE company
(
id int auto_increment primary key,
company_id int,
status varchar(20)
);
CREATE TABLE classes_by_company
(
id int auto_increment primary key,
company_id int,
class_name varchar(20)
);
CREATE TABLE person
(
id int auto_increment primary key,
employee_id int,
company_id int,
person_name varchar(20)
);
嘗試:'%1%'等等 – PeterRing