如何构建SQL查询以从两个表和序列化列中获取数据

时间:2017-05-21 13:21:12

标签: php mysql sql

我有两张桌子。

供应商

vendor_id   name    country   city      area
  42        Acme    Thailand  bangkok   sukhumvit
  43        Todo    Thailand  phuket    old town
  45        Goo     Spain     barcelona ramba
  46        Alo     England   London    chelsea
  47        Tchau   Thailand  bangkok   chachukat

产品

product_id  added_by                     
  107       {"type":"vendor","id":"42"}  
  109       {"type":"vendor","id":"44"}  
  110       {"type":"vendor","id":"43"}  
  112       {"type":"vendor","id":"47"} 

我想要一个查询,它将从特定城市的所有供应商中选择所有产品。

例如。我如何获得位于曼谷的所有供应商的所有产品。

2 个答案:

答案 0 :(得分:1)

可以使用以下查询从位于曼谷的所有供应商处获取产品。

SELECT Product.product_id
FROM Product
INNER JOIN Vendor ON Product.added_by LIKE CONCAT(  '%', Vendor.vendor_id,  '%' ) 
WHERE Vendor.city =  'bangkok'

答案 1 :(得分:0)

试试这个:

SELECT product_id FROM Product WHERE added_by = ANY (SELECT vendor_id FROM 
Vendor WHERE city = "bangkok"); (or anything you want)

也许它不会序列化它,但它运作良好。