我有一个显示事件列表的网页。默认情况下,正在显示所有事件。用户可以使用输入字段来过滤该列表。他可以输入city_code
,city_name
或city_state
。下面是我的数据库表及其内容:
地点
city_code (pk)
city_name
city_state
活动
event_id (pk)
event_name
city_code(foreign key)
我想要实现我想要的是:
1 /根据输入值过滤位置表:
(SELECT * FROM locations WHERE city_code LIKE input OR city_name LIKE input or city_state LIKE input).
2 /在事件表和过滤的位置表之间进行JOIN
查询。
我的问题是我知道如何过滤表格,我知道如何进行连接查询,但不知道如何将它们“合在一起”。我希望有人能帮帮忙。提前感谢您的回复。干杯。马克。
答案 0 :(得分:2)
您是否尝试过只使用它们?你应该发现它按你的意愿行事。您要查找的语法是以下之一
SELECT
...
FROM events
INNER JOIN locations
ON locations.city_code = events.city_code
AND (
locations.city_code = ...
OR
locations.city_name = ...
OR
locations.city_state = ...
)
效率略低但同样有效
SELECT
...
FROM events
INNER JOIN locations
ON locations.city_code = events.city_code
WHERE (
locations.city_code = ...
OR
locations.city_name = ...
OR
locations.city_state = ...
)
但是你真的应该在发布之前试一试。