[英]Basic SQL sub-query
我有一張桌子叫做產品。 基本上,我需要在這樣的各個字段中使用相同的單詞進行搜索,這很好用。
SELECT
`id`,
`product-id`,
`country`,
`name`,
`description`,
`branch`,
`stock`,
`price`
FROM
`products`
WHERE
`name` LIKE "%car%"
OR `description` LIKE "%car%"
OR `branch` LIKE "%car%"
OR `product-id` LIKE "%car%"
問題是現在我想要一個不同的查詢。 我只想顯示來自特定國家/地區的所有汽車,以及其他字段。 因此,如果我運行此查詢
SELECT
DISTINCT(b.`id`) id,
a.id,
a.`product-id`,
a.`country`,
a.`name`,
a.`description`,
a.`branch`,
a.`stock`,
a.`price`
FROM
`products` as a,
(
SELECT
*
FROM
`products`
WHERE
`country` = "Canada"
LIMIT 0,
10
)AS b
WHERE
a.`id` = b.`id`
OR b.`product-id` LIKE "%car%"
OR b.`name` LIKE "%car%"
OR b.`branch` LIKE "%car%"
OR b.`description` LIKE "%car%"
LIMIT 0, 10
我從多個國家/地區獲得結果,我在做什么錯呢?
提前致謝
您只需要對您的條件進行分組,
SELECT ...
FROM ...
WHERE (a.`id` = b.`id`) AND
(
b.`product-id` LIKE "%car%" OR
b.`name` LIKE "%car%" OR
b.`branch` LIKE "%car%" OR
b.`description` LIKE "%car%"
)
您不需要其他聯接。 只需將條件添加到帶有適當括號的where
子句中:
SELECT
`id`,
`product-id`,
`country`,
`name`,
`description`,
`branch`,
`stock`,
`price`
FROM
`products`
WHERE
country = 'Canada' and
( `name` LIKE "%car%"
OR `description` LIKE "%car%"
OR `branch` LIKE "%car%"
OR `product-id` LIKE "%car%"
)
limit 30
我認為這里的限制是適當的,盡管我不確定問題的意圖是什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.