我想把兩個查詢放在一起;一個來自我的posts
表格,另一個來自我的store_products
表格,並將結果顯示在同一頁面上。mySQL多選:1複雜1簡單
,所以我想利用這個......
SELECT
p.id AS pid
, p.uid
, p.title
, p.created_at
, u.id AS uid
, u.username
, u.avatar
, f.following
, l.uid AS liked
, u2.username AS source_username
, u2.avatar AS source_avatar
, u2.created_at AS source_created_at
FROM posts p
LEFT JOIN users u ON p.uid=u.id
LEFT JOIN posts_likes l ON l.pid=p.id
LEFT JOIN follow f ON u.id = f.following
LEFT JOIN posts p2 ON p.source_hash = p2.hash
LEFT JOIN users u2 ON u2.id = p2.uid
WHERE (f.user=2 OR p.uid=2)
GROUP BY p.id ORDER BY p.id DESC
,並把它與這樣的事情...
SELECT name, price FROM store_products WHERE uid=2
我試過多次SELECT
陳述,UNION
,在那裏我」 d通過使用NULL
彌補cols的差異,我試過LEFT
,RIGHT
和INNER
聯接,但所有這些操作都是將產品信息添加到其他郵政行中,而不是創建se爲每個產品分配行。
的結果集,我找的就是類似於這個
[0] Post 1
[1] Post 2
[2] Product 1
[3] Post 3
[4] Product 2
等等
編輯:回答問題。兩個表之間的唯一關係是用戶標識,否則它們是完全獨立的。我想爲訪問者提供帖子和產品的列表,並且我試圖在一個查詢中執行此操作以節省服務器負載,並且將它們放在同一列表中而不是單獨的列表中。
帖子和產品之間是否有任何關係?爲什麼'Post 2'後的產品1? – Barmar 2014-11-08 18:34:26
你的問題不是很清楚。帖子和產品之間有什麼關係?你能提供一些樣本數據嗎? – abl 2014-11-08 18:34:41
'SELECT ...,sp.name,sp.price ... ... LEFT JOIN users on ON p.uid = u.id LEFT JOIN store_products AS sp ON(sp.uid = u.uid)'will do你問:爲每個產品添加行,這兩個額外的列中的每一列都會報告產品的名稱和價格(或NULL)。 **但是,如何顯示這個**,它不是MySQL的轄區。您需要添加一些關於您用來製作您的「網頁」的內容,或許還有一些問題標籤。很可能你應該*做的是將這兩個查詢分開,並將它們以不同的方式集成到你選擇的CMS中。 – LSerni 2014-11-08 18:37:44