我构建此查询是为了从两个表 wp_sshow_sales+tickets 和 live_15 中提取所有数据,它非常适用于此。但我希望它仅在 wp_sshow_sales.saleID 在 wp_sshow_verifys.verifyID 中找到时才从 wp_sshow_sales & tickets 中提取
如您所见,我已尝试使用 IF 和 LEFT JOIN,但我无法指出这一点。我在该 IF 语句的某处遇到错误。
SELECT
wp_sshow_sales.saleFirstName as first,
wp_sshow_sales.saleLastName as last,
wp_sshow_sales.saleEMail as email,
wp_sshow_sales.salePPStreet as street,
wp_sshow_sales.salePPCity as city,
wp_sshow_sales.salePPState as state,
wp_sshow_sales.salePPZip as zip,
wp_sshow_tickets.ticketQty as qty
IF (wp_sshow_verifys.verifyID IS NULL,TRUE,FALSE) verify
FROM wp_sshow_sales, wp_sshow_tickets
WHERE wp_sshow_sales.saleID = wp_sshow_tickets.saleID
LEFT JOIN verify ON wp_sshow_sales.saleID = wp_sshow_verifys.verifyID
UNION ALL
SELECT
live_15.firstname as first,
live_15.lastname as last,
live_15.email as email,
live_15.street as street,
live_15.city as city,
live_15.state as state,
live_15.zip as zip,
live_15.qty as qty
FROM live_15
ORDER BY $order ASC
最佳答案
您的 IF
语句有一个语法
错误,因为您在此之前缺少一个逗号
:
SELECT
wp_sshow_sales.saleFirstName as first,
...
wp_sshow_tickets.ticketQty as qty, <-----
IF (wp_sshow_verifys.verifyID IS NULL,TRUE,FALSE) verify
FROM wp_sshow_sales, wp_sshow_tickets
WHERE wp_sshow_sales.saleID = wp_sshow_tickets.saleID
LEFT JOIN verify ON wp_sshow_sales.saleID = wp_sshow_verifys.verifyID
我猜你的 WHERE
子句也会有错误,它应该写在你的 JOIN
语句之后。
如果你想从 wp_sshow_sales
和 wp_sshow_tickets
中提取,只有在 wp_sshow_verifys
中找到 saleID
时,请使用 INNER JOIN
而不是 LEFT JOIN
。
有关JOIN
的更多信息,请check this SO question .
关于php - 如果 ID 存在于另一个表中,则拉行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31845957/